Installation ------------ git clone http://.../app.sh.git mkdir /opt/apps cd /opt/apps ln -s .../app.sh.git/app.sh app.sh NOTE: The bash completion is not perfect yet. echo 'source .../app.sh.git/app_completion' >> ~/.bashrc Or was it `~/.bash_profile`? hmm Environment ----------- The following environment variables are set by default: TODOs ----- * Support installation-wide settings. Useful for shared environment settings etc (PATH). * Add support for hooks in .app/hooks. Example hooks: * Diff config. Save a backup of the config on installtaion. * Copy the configuration from the previous installation. * Support changing current version. * Document app.sh * Concept: config. group, key and value. * Scriptable * init.d support * Support -h for all applicable methods to show the help/usage. * Rename "scripts/" to handlers or something similar. Perhaps just remove it entirely. Commands -------- ### `instance` #### `install` #### `upgrade` Tries to upgrade all instances where the version doesn't match the resolved version. #### `list` #### `list-versions` #### `set-current` #### `remove` Not implemented ### `conf` #### `get` ./app -n $n -i $i conf get #### `set` ./app -n $n -i $i conf set group.key value #### `delete` ./app -n $n -i $i conf delete group.key ### `operate` The operate sub-methods are provided by the application. #### Supported methods by `pid-method` #### `start` #### `stop` #### `status` ### `foreach` Runs the given command for each of the selected instances. Method Contract --------------- ### Environment variables you can depend on * `APPSH_NAME` * `APPSH_INSTANCE` * `APPSH_METHOD` Unclassified: * `APPSH_HOME` * `BASEDIR` Directory Hierarchy ------------------- ### Current App.sh is installed through cloning the git repository and/or unpacking a tarball from the git repository. The directory that contains app is known as $APPSH_HOME App.sh related: ./ The root of an application set. Known as $APPSH_APPS ./app The app script, symlinked from your git clone directory ./.app/lib bash libraries used by app.sh and methods ./.app/var runtime data Applications: ./// - Known as $APPSH_INSTANCE_HOME current - symlink to the currently installed app versions/ - collection with all installed versions 1.0/ - A installed version. The zip file is unzipped here. The current directory for scripts executing from scripts/ root/ scripts/ 1.1/ 2.0/