Welcome to Gasible, the ultimate solution for automating the setup of your local development environment. Our fast and efficient CLI tool, written in pure Go, makes the process of setting up a new development environment as easy and streamlined as possible. With Gasible, you can have your development environment up and running in minutes, not hours.
- Customizable configurations through a config file
- Modular add-ons for endless expandability
- Easy-to-use command-line interface
- Package management module for ease of use, using your favorite manager
- Through Go:
$ go install github.com/Linkinlog/gasible@latest
- Through cloning and building:
$ git clone https://github.com/Linkinlog/Gasible
$ cd gasible
$ make
$ ./gasible
- Through the binary in our releases
gasible [command]
setup
: Runs the setup method on all modulesupdate
: Runs the update method on all modulesteardown
: Runs the teardown method on all modulesgenerate
: Generates a new config, overwriting the old
For more detail on what each Module does, please check out our Wiki: (TODO)
Gasible uses a config file named config.yml
for customization.
You can specify your own package manager, packages, and all the modules' configuration in this file.
By default, Gasible will look for this file in $HOME/.gas/
Below is the default config featuring all the supported options and some explanation
---
# Package manager config
GenericPackageManager:
enabled: true # dictates if this module gets ran
settings:
manager: "apt-get" # which package manager to use for package/dependency management
packages: ["cowsay", "lolcat"] # (optional) array of packages to install when `Setup()` is ran
GitHub:
enabled: true # dictates if this module gets ran
settings:
token-env-key: "GASIBLE_GH" # (optional) the environment variable containing your Github personal access token
SysCall:
enabled: true # dictates if this module gets ran, this should always be true
settings: {}
We welcome contributions to Gasible. If you find a bug or want to request a new feature, please open an issue. If you want to contribute code, please fork the repository and open a pull request. Our community is always looking for ways to improve and make Gasible even better. Also check out the CONTRIBUTING.md for extra info
Gasible is licensed under the Apache 2.0 License.
Gasible was inspired by other similar projects, and we have used their practices as a reference. We are grateful for the contributions of the open-source community, and we hope that Gasible will be a valuable addition to it.