#Geppetto
SOA local development made easy.
Geppetto makes it simple to script the launch of all your local services with the desired environment variables
##Contents
##Installation
npm install -g geppetto
##Usage
geppetto config.json
Define a json configuration file with the processes that you want running. You can define a:
- Required
command
- The command being called to launch the process
- Optional
dir
- The directory you want the process to be launched from. dir
supports $ENVIRONMENT variable expansion.env
- A hash of process specific environment variables you want the process to haveinstall
- A sub level of options to perform to install the necessary files (if dir
is nonexistent)for the process (install
overrides git
option)postinstall
- A sub level of options to perform after installationgit
- If dir
is nonexistent it will be cloned down locallypostgit
- Sub level options to run on directory after cloning down with git
{
"api_server": {
"dir": "$PWD/node-server",
"install": {
"command": "curl",
"arguments": ["-O", "https://example.com/api_server"]
},
"postinstall": {
"command": "npm",
"arguments": ["install"]
},
"command": "node",
"arguments": [ "app.js" ],
"env": {
"PORT": "1337"
},
},
"app_server": {
"git": "https://github.com/me/app_server",
"postgit": {
"command": "bundle",
"arguments": ["install"]
},
"command": "rails",
"arguments": ["s"],
"env": {
"API_URL": "http://localhost:1337"
}
}
}
###Common Globals
There are also top level keys that can be defined to set global common options:
_env
Common environment variables for each service
{
"_env": {"LEVEL": "1", "BOSS": "SnapBack"},
"game": {"command": "cat", "arguments": ["index.js"], "env": {"LEVEL": "2"}}
}
Experimental Features
You can "export" the environment variables for an app using a -e or --export-env flag and an optional app name.
geppetto -e --export-env [app-name] config.json
If no app is specificed all _env
values will be printed, if an app is specified its specific env
variables will be printed as well. You can pipe these into a file and source
it in bash.
Example output:
export SOME_ENV=your_value
export SOME_OTHER_ENV=your_other_value
Made with ⚡️ by @taterbase