basHog is a dependency manager for bash and it allows you to use other projects in your own project.
Prerequisites
- You have a
bashshell. - You have either
git,curlorwget
There are three quick start options available:
On Linux
- Using
apt-get:
$ sudo add-apt-repository ppa:athena-oss/athena
$ sudo apt-get update
$ sudo apt-get install bashogOn MAC OSX
- Using Homebrew :
$ brew tap athena-oss/tap
$ brew install bashogAlternative
- Download the latest release
- Clone the repo:
git clone https://github.com/athena-oss/bashog.git
basHog fetches dependencies specified in a file called feed.hog that must be located at the root of your project. This file uses the INI file format with sections.
A dependency is identified by a section header and it is configured by the properties that are specified in that section. There are 3 available properties for a dependency :
- url - it identifies the url where the dependency can be fetched, e.g.:
# retrieves the dependency from master
url=git@github.com:athena-oss/bashunit.git
or
# using this format you are required to specify the version property
url=athena-oss/bashunit- lib_dir - the relative location inside the project where the libraries are located, e.g.:
lib_dir=lib- version - the version of the dependency
version=0.3.0[bashunit]
url=git@github.com:athena-oss/bashunit.git
lib_dir=lib[bashunit]
url=athena-oss/bashunit
version=0.3.0
lib_dir=libAt the root of your project (where the feed.hog file is located), run the following command :
$ bashog...
source "./vendor/autoloader.sh"
bashunit.utils.print_info "Hello world!"
...Checkout our guidelines on how to contribute in CONTRIBUTING.md.
Releases are managed using github's release feature. We use Semantic Versioning for all the releases. Every change made to the code base will be referred to in the release notes (except for cleanups and refactorings).
Licensed under the Apache License Version 2.0 (APLv2).