From 91052dfc0d9e23b2baf499f6c5aab21b1544a236 Mon Sep 17 00:00:00 2001 From: Trygve Laugstøl Date: Sat, 26 Oct 2013 19:31:49 +0200 Subject: o Adding a man page on internals. --- README.md | 168 +------------------------------------------------------------- 1 file changed, 2 insertions(+), 166 deletions(-) (limited to 'README.md') diff --git a/README.md b/README.md index c4a83e9..f36feea 100644 --- a/README.md +++ b/README.md @@ -1,166 +1,2 @@ -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 - -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 - register the application under /etc/init.d on - installation. Should probably be a plugin. - -* Support -h for all applicable methods to show the help/usage. - -* Rename "scripts/" to handlers or something similar. Perhaps just - remove it entirely. - -* Document how the operate method (custom pid-method stuff) can see - its own output for debugging. - -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` - -TODO: support -f flag that doesn't exit with 1 if the app is not running. - -#### `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` -* `APPSH_APPS` - -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 the app.sh libraries 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. - root/ - The current directory when executing methods and scripts - scripts/ - 1.1/ - 2.0/ - -Creating Apps -------------- - -"App bundles" are basically just zip file with a specific layout. It -has to contain at least a `root/` directory which contains your -application. It can contain anything. The `current` symlink will point -to this directory. - -The bundle can also contain a special `scripts` directory which -contains scripts that's run durtion package operations. Only -`postinstall` is currently supported. - -Zip File Tree -============= - - root/ - bin/ - myapp - etc/ - config - scripts/ - postinstall - -Managing Apps -------------- - -Setting Environment Variables ------------------------------ - - app -n .. -i .. conf +See docs/app.txt. Run `make docs` to generate a HTML version if you +have asciidoc installed. -- cgit v1.2.3