alpha_omega 1.4.3 → 1.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
data/VERSION CHANGED
@@ -1 +1 @@
1
- 1.4.3
1
+ 1.5.0
data/bin/ao CHANGED
@@ -2,4 +2,4 @@
2
2
 
3
3
  ENV['_AO_HOME'] = File.dirname(ENV['BUNDLE_GEMFILE'])
4
4
  shome=File.expand_path('../..', __FILE__)
5
- system("#{shome}/sbin/aoh", *ARGV)
5
+ system("#{shome}/libexec/aoh", *ARGV)
@@ -12,15 +12,6 @@ Capistrano::Configuration.instance(:must_exist).load do |config|
12
12
  set :dir_perms, "0755"
13
13
  set :bundler_options, "--path vendor/bundle"
14
14
  set :skip_scm, true
15
-
16
- def run cmd
17
- logger.debug "executing locally #{cmd}"
18
- run_locally cmd
19
- if $?.to_i != 0
20
- logger.debug "failed with error code #{$?.to_i >> 8}"
21
- exit 1
22
- end
23
- end
24
15
  end
25
16
  end
26
17
  end
@@ -1,21 +1,19 @@
1
+ require 'tempfile'
2
+
1
3
  Capistrano::Configuration.instance(:must_exist).load do |config|
2
4
  namespace :deploy do
3
5
  namespace :notify do
4
6
  task :default do
5
7
  if $deploy["notify"]
6
- email if $deploy["notify"].member? "email"
7
-
8
8
  unless skip_notifications
9
9
  airbrake if $deploy["notify"].member? "airbrake"
10
10
  newrelic if $deploy["notify"].member? "newrelic"
11
11
  campfire if $deploy["notify"].member? "campfire"
12
12
  flowdock if $deploy["notify"].member? "flowdock"
13
13
  end
14
- end
15
- end
16
14
 
17
- task :email do
18
- run_locally "echo '#{notify_message}' | mail -s '#{notify_message_abbr}' #{$deploy["notify"]["email"]["recipients"].join(" ")}"
15
+ email if $deploy["notify"].member? "email"
16
+ end
19
17
  end
20
18
 
21
19
  task :campfire do
@@ -39,16 +37,16 @@ Capistrano::Configuration.instance(:must_exist).load do |config|
39
37
  require 'airbrake'
40
38
  require 'airbrake_tasks'
41
39
 
42
- Airbrake.configure do |config|
43
- config.api_key = $deploy["notify"]["airbrake"]["api_key"]
40
+ Airbrake.configure do |abconfig|
41
+ abconfig.api_key = $deploy["notify"]["airbrake"]["api_key"]
44
42
  end
45
43
 
46
44
  begin
47
45
  AirbrakeTasks.deploy({
48
46
  :rails_env => dna['app_env'],
49
- :scm_revision => current_revision,
47
+ :scm_revision => "#{real_revision} #{revision}",
50
48
  :scm_repository => repository,
51
- :local_username => ENV['_AO_USER']
49
+ :local_username => ENV['_AO_DEPLOYER']
52
50
  })
53
51
  rescue EOFError
54
52
  $stderr.puts "An error occurred during the Airtoad deploy notification."
@@ -76,12 +74,33 @@ Capistrano::Configuration.instance(:must_exist).load do |config|
76
74
  require 'new_relic/recipes'
77
75
  end
78
76
 
77
+ task :email do
78
+ tmp_notify = Tempfile.new('email')
79
+ tmp_notify.write notify_message
80
+ tmp_notify.close
81
+ run_locally "cat '#{tmp_notify.path}' | mail -s '#{notify_message_abbr}' #{$deploy["notify"]["email"]["recipients"].join(" ")}"
82
+ tmp_notify.unlink
83
+ end
84
+
85
+ def map_sha_tag rev
86
+ tag = %x(git show-ref | grep '^#{rev} refs/tags/' | cut -d/ -f3).chomp
87
+ tag.empty? ? rev : tag
88
+ end
89
+
90
+ def public_git_url url
91
+ url.sub("git@github.com:","https://github.com/").sub(/\.git$/,'')
92
+ end
93
+
79
94
  def notify_message
80
- "#{ENV['_AO_USER']} deployed #{application} to #{dna['app_env']}: #{repository}: #{ENV['FLAGS_tag']} => #{current_revision}"
95
+ summary = "#{public_git_url repository}/compare/#{map_sha_tag cmp_previous_revision}...#{map_sha_tag cmp_current_revision}"
96
+
97
+ "#{ENV['_AO_DEPLOYER']} deployed #{application} to #{ENV['_AO_ARGS']} (#{dna['app_env']}): #{ENV['FLAGS_tag']}" +
98
+ "\n\nSummary:\n\n" + summary +
99
+ "\n\nLog:\n\n" + full_log
81
100
  end
82
101
 
83
102
  def notify_message_abbr
84
- "#{ENV['_AO_USER']} deployed #{application} to #{dna['app_env']}: #{ENV['FLAGS_tag']}"
103
+ "#{ENV['_AO_DEPLOYER']} deployed #{application} to #{ENV['_AO_ARGS']} (#{dna['app_env']}): #{ENV['FLAGS_tag']}"
85
104
  end
86
105
  end
87
106
  end
@@ -58,7 +58,10 @@ Capistrano::Configuration.instance(:must_exist).load do |config|
58
58
  _cset :last_pod, nil
59
59
  _cset :success, false
60
60
 
61
- _cset (:figlet) { [%x(which figlet).strip].reject {|f| !(File.executable? f)}.first || echo }
61
+ _cset (:figlet) {
62
+ fig = [%x(which figlet).strip].reject {|f| !(File.executable? f)}.first
63
+ fig ? "#{fig} -w 200" : "echo"
64
+ }
62
65
 
63
66
  # =========================================================================
64
67
  # services, logs
@@ -131,7 +134,7 @@ Capistrano::Configuration.instance(:must_exist).load do |config|
131
134
  unless releases.empty?
132
135
  w = current_workarea
133
136
  workarea = releases[((releases.index(w)?releases.index(w):-1)+1)%releases.length]
134
- system "#{figlet} -w 200 on #{workarea}"
137
+ system "#{figlet} on #{workarea}"
135
138
  workarea
136
139
  else
137
140
  ""
@@ -161,7 +164,9 @@ Capistrano::Configuration.instance(:must_exist).load do |config|
161
164
 
162
165
  _cset(:rollback_revision) { capture("cat #{rollback_release}/REVISION 2>&- || true").strip }
163
166
  _cset(:previous_revision) { capture("cat #{previous_release}/REVISION 2>&- || true").strip }
167
+ _cset(:cmp_previous_revision) { capture("cat #{previous_path}/REVISION 2>&- || true").strip }
164
168
  _cset(:current_revision) { capture("cat #{current_release}/REVISION 2>&- || true").strip }
169
+ _cset(:cmp_current_revision) { capture("cat #{current_path}/REVISION 2>&- || true").strip }
165
170
  _cset(:next_revision) { capture("cat #{next_release}/REVISION 2>&- || true").strip }
166
171
  _cset(:active_revision) { capture("cat #{active_release}/REVISION 2>&- || true").strip }
167
172
  _cset(:compare_revision) { capture("cat #{compare_release}/REVISION 2>&- || true").strip }
@@ -358,7 +363,7 @@ Capistrano::Configuration.instance(:must_exist).load do |config|
358
363
  run "mv -T #{previous_path}.new #{previous_path}"
359
364
  end
360
365
 
361
- system "#{figlet} -w 200 #{current_release_name} activated"
366
+ system "#{figlet} #{current_release_name} activated"
362
367
  end
363
368
  end
364
369
 
@@ -435,12 +440,12 @@ Capistrano::Configuration.instance(:must_exist).load do |config|
435
440
  DESC
436
441
  task :revision do
437
442
  if previous_release
438
- system "#{figlet} -w 200 on #{previous_release_name}"
443
+ system "#{figlet} on #{previous_release_name}"
439
444
  run "rm -f #{previous_path} #{next_path}"
440
445
  run "ln -nfs #{previous_release} #{current_path}.new"
441
446
  run "mv -T #{current_path}.new #{current_path}"
442
447
  else
443
- system "#{figlet} -w 200 failed to rollback"
448
+ system "#{figlet} failed to rollback"
444
449
  abort "could not rollback the code because there is no prior release"
445
450
  end
446
451
  end
@@ -584,7 +589,10 @@ Capistrano::Configuration.instance(:must_exist).load do |config|
584
589
  end
585
590
 
586
591
  if want_unlock
587
- at_exit { self.unlock; }
592
+ at_exit {
593
+ self.unlock;
594
+ self.successful;
595
+ }
588
596
  end
589
597
 
590
598
  run "echo #{epoch} #{ENV['_AO_DEPLOYER']} > #{lock_path}"
@@ -620,13 +628,16 @@ Capistrano::Configuration.instance(:must_exist).load do |config|
620
628
  end
621
629
  end
622
630
 
623
- task :successful, :only => { :primary => true } do
624
- set :success, true
625
- run_locally"#{figlet} success | perl -pe 's{( +)}{chr(46) x length($1)}e'"
631
+ task :successful do
632
+ if success
633
+ system "#{figlet} success"
634
+ else
635
+ system "#{figlet} failed"
636
+ end
626
637
  end
627
638
 
628
639
  task :finished do
629
- successful
640
+ set :success, true
630
641
  end
631
642
  end # :deploy
632
643
  end # Capistrano::Configuration
@@ -77,6 +77,7 @@ module Capistrano
77
77
  execute << "[[ -d #{destination}/.git ]] || #{git} clone #{verbose} #{variable(:repository)} #{destination}"
78
78
  execute << "cd #{destination} && #{git} fetch -q && #{git} checkout -q --force #{revision}"
79
79
  execute << "cd #{destination} && #{git} reset -q --hard #{revision} && #{git} submodule update -q --init --recursive"
80
+ execute << "cd #{destination} && #{git} status --porcelain"
80
81
 
81
82
  execute
82
83
  end
@@ -19,6 +19,7 @@ DEFINE_string "group" "" "app group override" "g"
19
19
  DEFINE_string "ssh_login" "" "ssh login override" "l"
20
20
  DEFINE_boolean "migrations" "$FLAGS_FALSE" "run development migrations" "M"
21
21
  DEFINE_string "reviewer" "" "who has reviewed the production version" "R"
22
+ DEFINE_boolean "debug" "${FLAGS_debug:-$FLAGS_FALSE}" "turn on debugging" "D"
22
23
 
23
24
  # entry point
24
25
  function main {
@@ -105,6 +106,10 @@ function main {
105
106
  export GATEWAY="$FLAGS_gateway"
106
107
  fi
107
108
 
109
+ if [[ -n "$FLAGS_debug" ]]; then
110
+ export FLAGS_debug
111
+ fi
112
+
108
113
  if [[ "$FLAGS_proxy" = "$FLAGS_FALSE" || "$FLAGS_direct" = "$FLAGS_TRUE" || -z "$FLAGS_gateway" ]]; then
109
114
  export _AO_DEPLOY=1
110
115
 
@@ -141,7 +146,6 @@ function main {
141
146
  if [[ -n "$FLAGS_reviewer" ]]; then
142
147
  export FLAGS_reviewer
143
148
  fi
144
-
145
149
  aomain "$nm_pod" "$@"
146
150
  else
147
151
  if [[ "$#" > 0 ]]; then
@@ -136,7 +136,7 @@ function configure_logging {
136
136
  }
137
137
 
138
138
  function ryaml {
139
- ruby -ryaml -e 'def ps x; unless x.nil?; puts x; end; end; ps ARGV[1..-1].inject(YAML.load(File.read(ARGV[0]))) {|acc, key| acc[key] }' "$@" 2>&-
139
+ 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] }' "$@" 2>&-
140
140
  }
141
141
 
142
142
  function random_str {
@@ -3721,6 +3721,7 @@ log4sh_cleanup()
3721
3721
  #*/
3722
3722
  _log4sh_cleanup()
3723
3723
  {
3724
+ set +x
3724
3725
  _lc__trap=$1
3725
3726
  ${__LOG4SH_INFO} "_log4sh_cleanup(): the ${_lc__trap} signal was caught"
3726
3727
 
@@ -16,6 +16,7 @@ require 'ao'
16
16
 
17
17
  function aomain {
18
18
  export LOCAL_ONLY=true
19
+ export FLAGS_DEBUG=$FLAGS_TRUE
19
20
  set -- $(for a in "$@"; do echo $a.echo; done)
20
21
  cap "$@"
21
22
  }
@@ -39,7 +39,7 @@ EOF
39
39
  chmod 755 "libexec/aohelper"
40
40
 
41
41
  for nm_cmd in activate check compare debug deploy dna hosts lock migrate proxy release restart rollback shell stage unlock; do
42
- ln -nfs "../libexec/aohelper" "bin/$nm_cmd"
42
+ ln -nfs "../libexec/aohelper" bin/$nm_cmd
43
43
  done
44
44
  else
45
45
  if [[ "$#" < 1 ]]; then
@@ -58,7 +58,7 @@ require 'alpha_omega/deploy'
58
58
  namespace :${nm_app} do
59
59
  namespace :bundle do
60
60
  task :ruby do
61
- run "PATH=${dollar}PATH:/usr/local/rvm/bin:${dollar}HOME/.rvm/bin; { cd #{deploy_release} && #{ruby_loader} bundle check 2>&1 >/dev/null; } || #{ruby_loader} bundle #{bundler_options} >/dev/null"
61
+ run "PATH=${dollar}PATH:/usr/local/rvm/bin:${dollar}HOME/.rvm/bin; { cd #{deploy_release} && #{ruby_loader} bundle check 2>&1 >/dev/null; } || #{ruby_loader} bundle --local --path vendor/bundle >/dev/null"
62
62
  end
63
63
  end
64
64
  end
@@ -48,9 +48,18 @@ function main {
48
48
  local nm_ruby="$(ryaml $_AO_HOME/config/deploy.yml app_ruby)"
49
49
 
50
50
  local tmp_remote="$(ssh $hst_gateway mktemp -t XXXXXXXXX)"
51
- scp -q $shome/sbin/remote-helper $hst_gateway:$tmp_remote
52
- ssh -t $hst_gateway "$pth_rvmrun" "$nm_ruby" bash "$tmp_remote" "$USER" "$git_url" "$git_spec" "$@"
53
- ssh $hst_gateway rm -f $tmp_remote
51
+ local bash_runner
52
+ if [[ "${FLAGS_debug:-}" = 0 ]]; then
53
+ set -x
54
+ bash_runner="bash $tmp_remote --debug"
55
+ else
56
+ bash_runner="bash $tmp_remote"
57
+ fi
58
+ scp -q $shome/libexec/remote-helper $hst_gateway:$tmp_remote
59
+ ssh -t $hst_gateway $bash_runner "${pth_rvmrun:-x}" "${nm_ruby:-x}" "$USER" "$git_url" "$git_spec" "$@"
60
+ if [[ "${FLAGS_debug:-}" = 1 ]]; then
61
+ ssh $hst_gateway rm -f $tmp_remote
62
+ fi
54
63
  }
55
64
 
56
65
  require sub "$BASH_SOURCE" "$@"
File without changes
@@ -1,3 +1,5 @@
1
+ #!/bin/bash
2
+
1
3
  function ryaml {
2
4
  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] }' "$@" 2>&-
3
5
  }
@@ -9,6 +11,7 @@ ruby_loader="$(ryaml $shome/config/deploy.yml ruby_loader)"
9
11
  PATH="$PATH:/usr/local/rvm/bin:$HOME/.rvm/bin"
10
12
 
11
13
  if ! $ruby_loader $app_ruby bundle check 2>&- > /dev/null; then
12
- $ruby_loader $app_ruby bundle install --local --quiet
14
+ echo "Bundling gems" 1>&2 # TODO use logger stderr
15
+ $ruby_loader $app_ruby bundle install --local --quiet --path vendor/bundle
13
16
  fi
14
17
  $ruby_loader $app_ruby bundle exec ao "${BASH_SOURCE##*/}" "$@"
@@ -0,0 +1,81 @@
1
+ #!/bin/bash
2
+
3
+ #/ NAME
4
+ #/ edit-gem -- set environment to hint to Gemfile to use a local gemspec
5
+ #/
6
+ #/ SYNOPSIS
7
+ #/ edit gem <name> [location]
8
+ #/ edit gem -r <names>
9
+ #/ edit gem -R
10
+
11
+ # figure out the project root under which bin, lib live
12
+ shome="$(cd -P -- "$(dirname -- "$BASH_SOURCE")/.." && pwd -P)"
13
+
14
+ # load a jason bourne library
15
+ source "$shome/libexec/_treadstone"
16
+
17
+ # define command line options:
18
+ DEFINE_boolean "update" "$FLAGS_FALSE" "finish editing a local gem and updates project" "u"
19
+ DEFINE_boolean "reset" "$FLAGS_FALSE" "reset gem to remote" "r"
20
+ DEFINE_boolean "resetall" "$FLAGS_FALSE" "reset all gems to remote" "R"
21
+
22
+ # entry point
23
+ function main {
24
+ if [[ "$FLAGS_resetall" = "$FLAGS_TRUE" ]]; then
25
+ set +f
26
+ rm -f $shome/.local/*
27
+ set -f
28
+ bundle --local --quiet && bundle check > /dev/null
29
+ git diff --no-ext-diff Gemfile.lock vendor/cache
30
+ elif [[ "$FLAGS_reset" = "$FLAGS_TRUE" ]]; then
31
+ local nm_gem
32
+ for nm_gem in "$@"; do
33
+ rm -f "$shome/.local/$nm_gem"
34
+ done
35
+
36
+ bundle --local --quiet && bundle check > /dev/null
37
+
38
+ git diff --no-ext-diff Gemfile.lock vendor/cache
39
+ elif [[ "$FLAGS_update" = "$FLAGS_TRUE" ]]; then
40
+ local nm_gem
41
+ for nm_gem in "$@"; do
42
+ echo -n > "$shome/.local/$nm_gem"
43
+ done
44
+
45
+ bundle update "$@"
46
+
47
+ for nm_gem in "$@"; do
48
+ rm -f "$shome/.local/$nm_gem"
49
+ done
50
+ bundle --local --quiet && bundle check > /dev/null
51
+
52
+ git add Gemfile.lock vendor/cache
53
+ git add -u vendor/cache
54
+ git diff --no-ext-diff --cached Gemfile.lock vendor/cache
55
+ else
56
+ local nm_gem="$1"; shift
57
+
58
+ local pth_gem
59
+ if [[ "$#" = 0 ]]; then
60
+ pth_gem="gems/$nm_gem"
61
+ else
62
+ pth_gem="$1"; shift
63
+ fi
64
+
65
+ if [[ ! -d "$pth_gem" ]]; then
66
+ logger_fatal "cannot find local gem directoy at $pth_gem"
67
+ exit 1
68
+ fi
69
+
70
+ pth_gem="$(cd -P -- "$pth_gem" && pwd -P)"
71
+
72
+ echo "enabling local gem development on ${nm_gem} at ${pth_gem}"
73
+ mkdir -p "$shome/.local"
74
+ echo "$pth_gem" > "$shome/.local/$nm_gem"
75
+
76
+ bundle --local --quiet && bundle check > /dev/null
77
+ git diff --no-ext-diff Gemfile.lock vendor/cache
78
+ fi
79
+ }
80
+
81
+ require sub "$BASH_SOURCE" "$@"
@@ -0,0 +1,64 @@
1
+ #!/bin/bash
2
+
3
+ #/ NAME
4
+ #/ remote-helper -- remotely builds a workarea
5
+ #/
6
+ #/ SYNOPSIS
7
+ #/
8
+ #/ remote-heper deployer git_url git_spec deploy_comand deploy_args
9
+ #/
10
+
11
+ set -e
12
+ if [[ "$#" > 0 ]]; then
13
+ if [[ "$1" = "--debug" ]]; then
14
+ shift
15
+ export FLAGS_debug=0
16
+ set -x
17
+ fi
18
+ fi
19
+
20
+ # entry point
21
+ function main {
22
+ pth_rvmrun=$1; shift
23
+ nm_ruby=$1; shift
24
+ nm_deployer=$1; shift
25
+ git_url=$1; shift
26
+ git_spec=$1; shift
27
+ cmd_deploy=$1; shift
28
+
29
+ git_branch="${git_spec%%:*}"
30
+ git_sha="${git_spec##*:}"
31
+
32
+ mkdir -p "$HOME/.deploy/$nm_deployer"
33
+ cd "$HOME/.deploy/$nm_deployer"
34
+
35
+ nm_project=$(basename $git_url .git)
36
+ if [[ ! -d $nm_project ]]; then
37
+ git clone -q $git_url
38
+ fi
39
+
40
+ cd $nm_project
41
+ git fetch -q
42
+
43
+ if [[ -z $git_branch || $git_branch = $git_sha ]]; then
44
+ git reset -q --hard $git_sha
45
+ git checkout -q $git_sha
46
+ else
47
+ git checkout -q --force $git_branch
48
+ git reset -q --hard $git_sha
49
+ fi
50
+
51
+ git submodule -q update --init --recursive
52
+
53
+ export _AO_DEPLOYER="$nm_deployer"
54
+ local ruby_loader=""
55
+ if [[ "$pth_rvmrun" != "x" ]]; then
56
+ PATH="$PATH:/usr/local/rvm/bin:$HOME/.rvm/bin"
57
+ ruby_loader="$pth_rvmrun $nm_ruby"
58
+ fi
59
+ $ruby_loader bundle check 2>&1 >/dev/null || { bundle install --quiet --local --path vendor/bundle || bundle check > /dev/null; }
60
+ $ruby_loader bundle exec ao $cmd_deploy "$@"
61
+ }
62
+
63
+ # pass arguments to entry point
64
+ main "$@"
File without changes
@@ -22,8 +22,9 @@ function main {
22
22
  local dollar='$'
23
23
  local nm_command="$1"; shift
24
24
 
25
- ln -nfsv stub "$shome/bin/$nm_command"
26
- cp "$0" "$shome/libexec/$nm_command"
25
+
26
+ cp "$shome/libexec/stub" "$shome/libexec/$nm_command"
27
+ ln -nfsv $nm_command "$shome/bin/$nm_command"
27
28
  chmod 755 "$shome/libexec/$nm_command"
28
29
 
29
30
  logger_info "$nm_command is stubbed at bin/$nm_command"
@@ -1,10 +1,11 @@
1
1
  #!/bin/bash
2
2
 
3
3
  #/ NAME
4
- #/ stub -- symlink catchall to implement 37signals/sub interface
4
+ #/ local-helper -- resets environment for another bundle exec
5
5
  #/
6
6
  #/ SYNOPSIS
7
- #/ ln -nfs stub bin/stubbed-command
7
+ #/
8
+ #/ local-helper command args ...
8
9
 
9
10
  # figure out the project root under which bin, lib live
10
11
  shome="$(cd -P -- "$(dirname -- "$BASH_SOURCE")/.." && pwd -P)"
@@ -12,4 +13,12 @@ shome="$(cd -P -- "$(dirname -- "$BASH_SOURCE")/.." && pwd -P)"
12
13
  # load a jason bourne library
13
14
  source "$shome/libexec/_treadstone"
14
15
 
15
- require 'sub' "$BASH_SOURCE" "$@"
16
+ # entry point
17
+ function main {
18
+ unset GEM_HOME BUNDLE_GEMFILE RUBYOPT
19
+
20
+ bundle check 2>&1 >/dev/null || { bundle install --quiet --local --path vendor/bundle || bundle check > /dev/null; }
21
+ exec bundle exec "$@"
22
+ }
23
+
24
+ require sub "$BASH_SOURCE" "$@"
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: alpha_omega
3
3
  version: !ruby/object:Gem::Version
4
- hash: 1
4
+ hash: 3
5
5
  prerelease:
6
6
  segments:
7
7
  - 1
8
- - 4
9
- - 3
10
- version: 1.4.3
8
+ - 5
9
+ - 0
10
+ version: 1.5.0
11
11
  platform: ruby
12
12
  authors:
13
13
  - David Nghiem
@@ -132,16 +132,20 @@ files:
132
132
  - libexec/aoh-rollback
133
133
  - libexec/aoh-shell
134
134
  - libexec/aoh-stage
135
+ - libexec/aoh-stub
135
136
  - libexec/aoh-task
136
137
  - libexec/aoh-unlock
137
138
  - libexec/aohelper
138
139
  - libexec/build
139
140
  - libexec/build-gem
140
141
  - libexec/bump
142
+ - libexec/edit
141
143
  - libexec/edit-gem
142
144
  - libexec/local-helper
143
145
  - libexec/publish
144
146
  - libexec/publish-gem
147
+ - libexec/remote-helper
148
+ - libexec/stub
145
149
  - libexec/stub-prepare
146
150
  - lib/alpha_omega/config/deploy.rb
147
151
  - lib/alpha_omega/config/deploy_challenge.rb
@@ -166,9 +170,6 @@ files:
166
170
  - lib/alpha_omega/version.rb
167
171
  - lib/development.rb
168
172
  - sbin/activate
169
- - sbin/aoh
170
- - sbin/aoh-stub
171
- - sbin/bump
172
173
  - sbin/check
173
174
  - sbin/compare
174
175
  - sbin/debug
@@ -182,12 +183,10 @@ files:
182
183
  - sbin/proxy
183
184
  - sbin/release
184
185
  - sbin/remote
185
- - sbin/remote-helper
186
186
  - sbin/restart
187
187
  - sbin/rollback
188
188
  - sbin/shell
189
189
  - sbin/stage
190
- - sbin/stub
191
190
  - sbin/task
192
191
  - sbin/unlock
193
192
  - bin/ao
data/sbin/aoh DELETED
@@ -1,15 +0,0 @@
1
- #!/bin/bash
2
-
3
- #/ NAME
4
- #/ stub -- symlink catchall to implement 37signals/sub interface
5
- #/
6
- #/ SYNOPSIS
7
- #/ ln -nfs stub bin/stubbed-command
8
-
9
- # figure out the project root under which bin, lib live
10
- shome="$(cd -P -- "$(dirname -- "$BASH_SOURCE")/.." && pwd -P)"
11
-
12
- # load a jason bourne library
13
- source "$shome/libexec/_treadstone"
14
-
15
- require 'sub' "$BASH_SOURCE" "$@"
data/sbin/bump DELETED
@@ -1,15 +0,0 @@
1
- #!/bin/bash
2
-
3
- #/ NAME
4
- #/ stub -- symlink catchall to implement 37signals/sub interface
5
- #/
6
- #/ SYNOPSIS
7
- #/ ln -nfs stub bin/stubbed-command
8
-
9
- # figure out the project root under which bin, lib live
10
- shome="$(cd -P -- "$(dirname -- "$BASH_SOURCE")/.." && pwd -P)"
11
-
12
- # load a jason bourne library
13
- source "$shome/libexec/_treadstone"
14
-
15
- require 'sub' "$BASH_SOURCE" "$@"
@@ -1,81 +0,0 @@
1
- #!/bin/bash
2
-
3
- #/ NAME
4
- #/ remote-helper -- remotely builds a workarea
5
- #/
6
- #/ SYNOPSIS
7
- #/
8
- #/ remote-heper deployer git_url git_spec deploy_comand deploy_args
9
- #/
10
-
11
- set -e
12
-
13
- # figure out the project root under which bin, lib live
14
- shome="$(cd -P -- "$(dirname -- "$BASH_SOURCE")/.." && pwd -P)"
15
-
16
- fl_debug=
17
-
18
- function crumb {
19
- if [[ -n "$fl_debug" ]]; then
20
- echo "$(date) $@" 1>&2
21
- fi
22
- }
23
-
24
- # entry point
25
- function main {
26
- nm_deployer=$1; shift
27
- git_url=$1; shift
28
- git_spec=$1; shift
29
- cmd_deploy=$1; shift
30
-
31
- if [[ "$cmd_deploy" = "debug" ]]; then
32
- fl_debug=1
33
- fi
34
-
35
- crumb "start remote-helper with args: $nm_deployer, $git_url, $git_spec, $cmd_deploy"
36
- crumb "additional args: $@"
37
-
38
- git_branch="${git_spec%%:*}"
39
- git_sha="${git_spec##*:}"
40
-
41
- crumb "derive: git_branch = $git_branch"
42
- crumb "derive: git_sha = $git_sha"
43
-
44
- mkdir -p "$HOME/.deploy/$nm_deployer"
45
- cd "$HOME/.deploy/$nm_deployer"
46
-
47
- nm_project=$(basename $git_url .git)
48
- if [[ ! -d $nm_project ]]; then
49
- crumb "git clone $git_url"
50
- git clone -q $git_url
51
- fi
52
- crumb "remote deploy on ${LOGNAME}@$(hostname) in $HOME/.deploy/$nm_deployer/$nm_project/"
53
-
54
- cd $nm_project
55
- git fetch -q
56
-
57
- if [[ -z $git_branch || $git_branch = $git_sha ]]; then
58
- crumb "git reset, checkout of $git_sha"
59
- git reset -q --hard $git_sha
60
- git checkout -q $git_sha
61
- else
62
- crumb "git checkout of $git_branch, reset of $git_sha"
63
- git checkout -q --force $git_branch
64
- git reset -q --hard $git_sha
65
- fi
66
-
67
- crumb "git submodule"
68
- git submodule -q update --init --recursive
69
-
70
- crumb "executing ao $cmd_deploy $@"
71
- export _AO_DEPLOYER="$nm_deployer"
72
- bundle check 2>&1 >/dev/null || { bundle install --quiet --local --path vendor/bundle || bundle check > /dev/null; }
73
- bundle exec ao $cmd_deploy "$@"
74
- crumb "end remote-helper"
75
- }
76
-
77
- # setup
78
- unset cd # disable rvm's cd function to prevent prompts
79
-
80
- # pass arguments to entry point
81
- main "$@"