libexec/aoh-init in alpha_omega-1.4.1 vs libexec/aoh-init in alpha_omega-1.4.2
- old
+ new
@@ -11,20 +11,47 @@
shome="$(cd -P -- "$(dirname -- "$BASH_SOURCE")/.." && pwd -P)"
# load a jason bourne library
source "$shome/libexec/_treadstone"
-function main {
- if [[ "$#" < 1 ]]; then
- logger_fatal "missing application name"
- exit 1
- fi
+DEFINE_boolean "helpers" "$FLAGS_FALSE" "Generate the bin and libexec helpers" "H"
- local nm_app="$1"; shift
+function main {
local dollar='$'
- cat > "Capfile" <<EOF
+ if [[ "$FLAGS_helpers" = "$FLAGS_TRUE" ]]; then
+ mkdir -p "libexec"
+ cat > "libexec/aohelper" <<EOF
+function ryaml {
+ ruby -ryaml -e 'def ps x; unless x.nil?; puts (x.class == String || x.class == Fixnum) ? x : x.to_yaml; end; end; ps ARGV[1..-1].inject(YAML.load(File.read(ARGV[0]))) {|acc, key| acc[acc.class == Array ? key.to_i : key] }' "${dollar}@" 2>&-
+}
+
+shome="${dollar}(cd -P -- "${dollar}(dirname -- "${dollar}BASH_SOURCE")/.." && pwd -P)"
+
+app_ruby="${dollar}(ryaml ${dollar}shome/config/deploy.yml app_ruby)"
+ruby_loader="${dollar}(ryaml ${dollar}shome/config/deploy.yml ruby_loader)"
+PATH="${dollar}PATH:/usr/local/rvm/bin:${dollar}HOME/.rvm/bin"
+
+if ! ${dollar}ruby_loader ${dollar}app_ruby bundle check 2>&- > /dev/null; then
+ ${dollar}ruby_loader ${dollar}app_ruby bundle install --local --quiet
+fi
+${dollar}ruby_loader ${dollar}app_ruby bundle exec ao "${dollar}{BASH_SOURCE##*/}" "${dollar}@"
+EOF
+ chmod 755 "libexec/aohelper"
+
+ for nm_cmd in activate check compare debug deploy dna hosts lock migrate proxy release restart rollback shell stage unlock; do
+ ln -nfs "../libexec/aohelper" $shome/bin/$nm_cmd
+ done
+ else
+ if [[ "$#" < 1 ]]; then
+ logger_fatal "missing application name"
+ exit 1
+ fi
+
+ local nm_app="$1"; shift
+
+ cat > "Capfile" <<EOF
#!/usr/bin/env ruby
require 'alpha_omega/deploy'
# application deploy
@@ -49,20 +76,21 @@
{ :deploy => { } }
end
end
EOF
- mkdir -p "config"
- cat > "config/deploy.yml" <<EOF
+ mkdir -p "config"
+ cat > "config/deploy.yml" <<EOF
---
repository: git@github.com:someone/something_something
application: ${nm_app}
ruby_loader: rvm-exec
app_ruby: ree
branches: [ production staging master ]
branch_regex: /
EOF
+ fi
}
require sub "$BASH_SOURCE" "$@"