Learn more about aah Application Binary

Page describe the aah application binary artifact details.

Table of Contents

Flags

Application binary supports following input flags.

  • -version - display the binary name, version and build date.
  • -config - absolute path of external configuration file, it gets merge into application config before the initialize.
  • -profile - environment profile name to activate. e.g: dev, qa, prod.

version

version flag outputs the binary name, version, and build date. Also build information is available via aah.AppBuildInfo() method at runtime.

# For e.g.: application binary name is `aahwebsite`
aahwebsite -version

# output
Binary Name : aahwebsite
Version     : 381eaa8
Build Date  : 2017-04-25T21:00:45-07:00

config

Supplying external configuration file. It gets merged into application configuration before the initialize.

aahwebsite -config /etc/aahwebsite/site.conf

profile

Environment profile name to active on startup.

aahwebsite -profile qa

Start/Stop script

aah build artifact contains two startup scripts named aah.sh is for *NIX and aah.cmd is for Windows. However you can create your own startup scripts as per your need with supported input flags.

  • *NIX script supports {start|stop|restart|version}
  • Windows script supports {start|stop|version}

Note: start command accepts profile and config arguments.

# For e.g: `aah.sh` *NIX start script with arguments.
./aah.sh start qa
./aah.sh start qa /Users/jeeva/external-config.conf


# To stop
./aah.sh stop

OS Signals

aah application binary listens to SIGINT and SIGTERM OS signal. On receiving these signals application performs the graceful shutdown with timeout of config value server.timeout.grace_shutdown from aah.conf and then fires the OnShutdown server event.

Cross Compile Build

Since go1.5 we can build cross platform build easily. aah framework supports it, refer Cross Compile Build

Build Artifact Naming Convention

aah build produces the build artifact name as <app-binary-name>-<version>-<goos>-<goarch>.zip. Also you can supply your custom name for the artifact via -o or --output.

For e.g.: aahwebsite-381eaa8-darwin-amd64.zip