alpha_omega 1.2.1 → 1.3.1

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.
Files changed (89) hide show
  1. data/VERSION +1 -1
  2. data/bin/{alpha_omega → ao} +1 -1
  3. data/lib/alpha_omega/config/deploy.rb +4 -0
  4. data/lib/alpha_omega/config/deploy_challenge.rb +19 -0
  5. data/lib/alpha_omega/config/deploy_localhost.rb +29 -0
  6. data/lib/alpha_omega/config/deploy_notify.rb +85 -0
  7. data/lib/alpha_omega/config/deploy_ssh.rb +11 -0
  8. data/lib/alpha_omega/deploy.rb +14 -40
  9. data/lib/alpha_omega/utils.rb +22 -18
  10. data/libexec/_ao +194 -0
  11. data/{sbin → libexec}/_bump +0 -0
  12. data/{sbin → libexec}/_jason +19 -27
  13. data/{sbin → libexec}/_log4sh +0 -0
  14. data/{sbin → libexec}/_meat +19 -27
  15. data/{sbin → libexec}/_prime +1 -1
  16. data/{sbin → libexec}/_shflags +0 -0
  17. data/{sbin → libexec}/_shunit +0 -0
  18. data/{sbin → libexec}/_sub +18 -3
  19. data/{sbin → libexec}/_treadstone +1 -1
  20. data/{sbin → libexec}/_versions +0 -0
  21. data/{sbin/ao → libexec/aoh} +3 -3
  22. data/libexec/aoh-activate +22 -0
  23. data/libexec/aoh-check +23 -0
  24. data/libexec/aoh-compare +23 -0
  25. data/libexec/aoh-debug +23 -0
  26. data/libexec/aoh-deploy +22 -0
  27. data/libexec/aoh-dist +23 -0
  28. data/libexec/{ao-dna → aoh-dna} +10 -12
  29. data/libexec/aoh-hosts +24 -0
  30. data/libexec/{ao-lock → aoh-lock} +11 -11
  31. data/libexec/aoh-migrate +23 -0
  32. data/libexec/aoh-proxy +74 -0
  33. data/libexec/aoh-release +23 -0
  34. data/libexec/aoh-remote +37 -0
  35. data/libexec/aoh-restart +23 -0
  36. data/libexec/aoh-rollback +23 -0
  37. data/libexec/aoh-shell +23 -0
  38. data/libexec/aoh-stage +22 -0
  39. data/libexec/aoh-task +24 -0
  40. data/libexec/{ao-unlock → aoh-unlock} +11 -11
  41. data/libexec/build +1 -1
  42. data/libexec/build-gem +1 -1
  43. data/libexec/bump +1 -1
  44. data/libexec/edit-gem +1 -1
  45. data/libexec/local-helper +24 -0
  46. data/libexec/publish +1 -1
  47. data/libexec/publish-gem +1 -1
  48. data/libexec/stub-prepare +3 -7
  49. data/{libexec/ao-shell → sbin/activate} +4 -7
  50. data/{libexec/ao → sbin/aoh} +3 -3
  51. data/{libexec/ao-deploy → sbin/aoh-stub} +4 -7
  52. data/sbin/bump +15 -0
  53. data/sbin/check +20 -0
  54. data/sbin/compare +20 -0
  55. data/sbin/debug +20 -0
  56. data/sbin/deploy +20 -0
  57. data/sbin/dist +20 -0
  58. data/sbin/dna +20 -0
  59. data/sbin/hosts +20 -0
  60. data/sbin/local-helper +15 -0
  61. data/sbin/lock +20 -0
  62. data/sbin/migrate +20 -0
  63. data/sbin/proxy +20 -0
  64. data/sbin/release +20 -0
  65. data/sbin/remote +20 -0
  66. data/sbin/remote-helper +81 -0
  67. data/sbin/restart +20 -0
  68. data/sbin/rollback +20 -0
  69. data/sbin/shell +20 -0
  70. data/sbin/stage +20 -0
  71. data/sbin/stub +3 -3
  72. data/sbin/task +20 -0
  73. data/sbin/unlock +20 -0
  74. metadata +157 -120
  75. data/libexec/ao-activate +0 -23
  76. data/libexec/ao-build +0 -23
  77. data/libexec/ao-check +0 -23
  78. data/libexec/ao-compare +0 -23
  79. data/libexec/ao-cook +0 -23
  80. data/libexec/ao-debug +0 -28
  81. data/libexec/ao-dist +0 -23
  82. data/libexec/ao-hosts +0 -28
  83. data/libexec/ao-migrate +0 -23
  84. data/libexec/ao-plan +0 -23
  85. data/libexec/ao-release +0 -23
  86. data/libexec/ao-restart +0 -23
  87. data/libexec/ao-rollback +0 -23
  88. data/libexec/ao-stage +0 -23
  89. data/libexec/ao-task +0 -24
data/libexec/aoh-hosts ADDED
@@ -0,0 +1,24 @@
1
+ #!/bin/bash
2
+
3
+ #/ NAME
4
+ #/ hosts --
5
+ #/
6
+ #/ SYNOPSIS
7
+ #/
8
+ #/ hosts
9
+ #/
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
+ require 'ao'
17
+
18
+ function aomain {
19
+ export LOCAL_ONLY=true
20
+ set -- $(for a in "$@"; do echo $a.echo; done)
21
+ bundle exec cap "$@" deploy:began deploy:finished 2>&1 | grep eea914aaa8dde6fdae29242b1084a2b0415eefaf | awk '{print $NF}' | sort -u 2>&1
22
+ }
23
+
24
+ require sub "$BASH_SOURCE" "$@"
@@ -1,33 +1,33 @@
1
1
  #!/bin/bash
2
2
 
3
3
  #/ NAME
4
- #/ ao-lock -- lock a deploy
4
+ #/ lock --
5
5
  #/
6
6
  #/ SYNOPSIS
7
- #/ ao lock [deploy_set...]
8
- #/ ao lock migreate|compare [deploy_set...]
7
+ #/
8
+ #/ lock
9
+ #/ lock compare|migrate
10
+ #/
9
11
 
10
12
  # figure out the project root under which bin, lib live
11
13
  shome="$(cd -P -- "$(dirname -- "$BASH_SOURCE")/.." && pwd -P)"
12
14
 
13
15
  # load a jason bourne library
14
- source "$shome/sbin/_treadstone"
15
-
16
- # parse the command-line
16
+ source "$shome/libexec/_treadstone"
17
+ require 'ao'
17
18
 
18
- # entry point
19
- function main {
19
+ function aomain {
20
20
  case "${1}" in
21
21
  compare|migrate)
22
22
  nm_lock="${1}"; shift
23
23
  set -- $(for a in "$@"; do echo $a.app; done)
24
- bundle exec cap "$@" deploy:dont_unlock "deploy:lock_${nm_lock}"
24
+ bundle exec cap "$@" deploy:began deploy:dont_unlock "deploy:lock_${nm_lock}" deploy:finished
25
25
  ;;
26
26
  *)
27
27
  set -- $(for a in "$@"; do echo $a.app; done)
28
- bundle exec cap "$@" deploy:dont_unlock deploy:lock
28
+ bundle exec cap "$@" deploy:began deploy:dont_unlock deploy:lock deploy:finished
29
29
  ;;
30
30
  esac
31
31
  }
32
32
 
33
- require 'sub' "$BASH_SOURCE" "$@"
33
+ require sub "$BASH_SOURCE" "$@"
@@ -0,0 +1,23 @@
1
+ #!/bin/bash
2
+
3
+ #/ NAME
4
+ #/ migrate --
5
+ #/
6
+ #/ SYNOPSIS
7
+ #/
8
+ #/ migrate
9
+ #/
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
+ require 'ao'
17
+
18
+ function aomain {
19
+ set -- $(for a in "$@"; do echo $a.app; done)
20
+ bundle exec cap "$@" deploy:began deploy:lock_migrate deploy:migrate deploy:finished
21
+ }
22
+
23
+ require sub "$BASH_SOURCE" "$@"
data/libexec/aoh-proxy ADDED
@@ -0,0 +1,74 @@
1
+ #!/bin/bash
2
+
3
+ #/ NAME
4
+ #/ proxy -- proxies deploy using a gateway host
5
+ #/
6
+ #/ SYNOPSIS
7
+ #/
8
+ #/ proxy gateway version deploy_command args
9
+ #/ proxy git_url git_spec gateway version deploy_command args
10
+ #/
11
+
12
+ # figure out the project root under which bin, lib live
13
+ shome="$(cd -P -- "$(dirname -- "$BASH_SOURCE")/.." && pwd -P)"
14
+
15
+ # load a jason bourne library
16
+ source "$shome/libexec/_treadstone"
17
+ get_started
18
+
19
+ function git_branch_head {
20
+ local ver_repo="$1"; shift
21
+
22
+ local git_branch=""
23
+ local git_head="$ver_repo"
24
+ if [[ "$ver_repo" = "HEAD" ]]; then
25
+ git_branch="$(git symbolic-ref HEAD 2>&- | sed 's#^refs/heads/##' || true)"
26
+
27
+ git_head="$(git rev-parse HEAD)"
28
+ if [[ -z $git_head ]]; then
29
+ echo "ERROR: could not find the SHA for HEAD" 1>&2
30
+ return 1
31
+ fi
32
+ fi
33
+
34
+ echo "$git_branch:$git_head"
35
+ }
36
+
37
+ function clone_proxy {
38
+ local ver_repo=$2
39
+ export _AO_PROXIED=1
40
+ rm -rf $shome/.tmp/deploy
41
+ local git_url="$(git config --list | grep remote.origin.url | cut -d= -f2-)"
42
+ git clone -q $shome $shome/.tmp/deploy
43
+ cd $shome/.tmp/deploy
44
+ local git_spec="$(git_branch_head "$ver_repo")"
45
+ git checkout -q "${git_head##*:}"
46
+ exec $shome/.tmp/deploy/sbin/proxy "$git_url" "$git_spec" "$@"
47
+ }
48
+
49
+ : ${_AO_PROXIED:=}
50
+ if [[ -z "$_AO_PROXIED" ]]; then
51
+ clone_proxy "$@"
52
+ fi
53
+
54
+ # entry point
55
+ function main {
56
+ local git_url="$1"; shift
57
+ local git_spec="$1"; shift
58
+ local hst_gateway="$1"; shift
59
+ local ver_repo="$1"; shift
60
+ case "$hst_gateway" in
61
+ *)
62
+ local pth_rvmrun="${_AO_RUBY_LOADER:-}"
63
+ : ${pth_rvmrun:=$(ruby -ryaml -e 'puts YAML.load(File.read(ARGV[0]))[ARGV[1]]' $shome/config/deploy.yml ruby_loader)}
64
+ local nm_ruby="$(ruby -ryaml -e 'puts YAML.load(File.read(ARGV[0]))[ARGV[1]]' $shome/config/deploy.yml app_ruby)"
65
+
66
+ local tmp_remote="$(ssh $hst_gateway mktemp -t XXXXXXXXX)"
67
+ scp -q $shome/sbin/remote-helper $hst_gateway:$tmp_remote
68
+ ssh -t $hst_gateway "$pth_rvmrun" "$nm_ruby" bash "$tmp_remote" "$USER" "$git_url" "$git_spec" "$@"
69
+ ssh $hst_gateway rm -f $tmp_remote
70
+ ;;
71
+ esac
72
+ }
73
+
74
+ require sub "$BASH_SOURCE" "$@"
@@ -0,0 +1,23 @@
1
+ #!/bin/bash
2
+
3
+ #/ NAME
4
+ #/ release --
5
+ #/
6
+ #/ SYNOPSIS
7
+ #/
8
+ #/ release
9
+ #/
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
+ require 'ao'
17
+
18
+ function aomain {
19
+ set -- $(for a in "$@"; do echo $a.app; done)
20
+ bundle exec cap "$@" deploy:began deploy:lock deploy deploy:finished
21
+ }
22
+
23
+ require sub "$BASH_SOURCE" "$@"
@@ -0,0 +1,37 @@
1
+ #!/bin/bash
2
+
3
+ #/ NAME
4
+ #/ remote -- connects to a remote server
5
+ #/
6
+ #/ SYNOPSIS
7
+ #/ remote hostname ... any ssh args
8
+
9
+ # figure out the project root under which bin, lib live
10
+ shome="$(cd -P -- "$(dirname -- "$0")/.." && pwd -P)"
11
+
12
+ # load a jason bourne library
13
+ source "$shome/libexec/_treadstone" "$@"
14
+ get_started
15
+
16
+ # entry point
17
+ function main {
18
+ if [[ "$#" = 0 ]]; then
19
+ logger_fatal "need a hostname or podname"
20
+ exit 1
21
+ fi
22
+
23
+ local nm_component="$1"; shift
24
+ local deploy_base="$(ryaml $shome/config/deploy.yml deploy_base)"
25
+ if [[ -n "$deploy_base" ]]; then
26
+ local pod_shortcut="$(ryaml $HOME/.getting-started/config/pods.yml pods ${deploy_base}${nm_component} pod)"
27
+ if [[ -n "$pod_shortcut" ]]; then
28
+ nm_component="${deploy_base}${nm_component}"
29
+ fi
30
+ fi
31
+
32
+ exec ssh "$nm_component" "$@"
33
+ logger_fatal "could not execute ssh; this is abnormal"
34
+ exit 1
35
+ }
36
+
37
+ require sub "$BASH_SOURCE" "$@"
@@ -0,0 +1,23 @@
1
+ #!/bin/bash
2
+
3
+ #/ NAME
4
+ #/ restart --
5
+ #/
6
+ #/ SYNOPSIS
7
+ #/
8
+ #/ restart
9
+ #/
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
+ require 'ao'
17
+
18
+ function aomain {
19
+ set -- $(for a in "$@"; do echo $a.app; done)
20
+ bundle exec cap "$@" deploy:began deploy:lock deploy:restart deploy:finished
21
+ }
22
+
23
+ require sub "$BASH_SOURCE" "$@"
@@ -0,0 +1,23 @@
1
+ #!/bin/bash
2
+
3
+ #/ NAME
4
+ #/ rollback --
5
+ #/
6
+ #/ SYNOPSIS
7
+ #/
8
+ #/ rollback
9
+ #/
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
+ require 'ao'
17
+
18
+ function aomain {
19
+ set -- $(for a in "$@"; do echo $a.app; done)
20
+ bundle exec cap "$@" deploy:began deploy:lock deploy:rollback deploy:finished
21
+ }
22
+
23
+ require sub "$BASH_SOURCE" "$@"
data/libexec/aoh-shell ADDED
@@ -0,0 +1,23 @@
1
+ #!/bin/bash
2
+
3
+ #/ NAME
4
+ #/ shell --
5
+ #/
6
+ #/ SYNOPSIS
7
+ #/
8
+ #/ shell
9
+ #/
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
+ require 'ao'
17
+
18
+ function aomain {
19
+ set -- $(for a in "$@"; do echo $a.app; done)
20
+ bundle exec cap "$@" deploy:began shell deploy:finished
21
+ }
22
+
23
+ require sub "$BASH_SOURCE" "$@"
data/libexec/aoh-stage ADDED
@@ -0,0 +1,22 @@
1
+ #!/bin/bash
2
+
3
+ #/ NAME
4
+ #/ stage --
5
+ #/
6
+ #/ SYNOPSIS
7
+ #/
8
+ #/ stage
9
+
10
+ # figure out the project root under which bin, lib live
11
+ shome="$(cd -P -- "$(dirname -- "$BASH_SOURCE")/.." && pwd -P)"
12
+
13
+ # load a jason bourne library
14
+ source "$shome/libexec/_treadstone"
15
+ require 'ao'
16
+
17
+ function aomain {
18
+ set -- $(for a in "$@"; do echo $a.app; done)
19
+ bundle exec cap "$@" deploy:began deploy:lock deploy:update_code deploy:symlink_next deploy:finished
20
+ }
21
+
22
+ require sub "$BASH_SOURCE" "$@"
data/libexec/aoh-task ADDED
@@ -0,0 +1,24 @@
1
+ #!/bin/bash
2
+
3
+ #/ NAME
4
+ #/ task --
5
+ #/
6
+ #/ SYNOPSIS
7
+ #/
8
+ #/ task <task_name>
9
+ #/
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
+ require 'ao'
17
+
18
+ function aomain {
19
+ local nm_task=$1; shift
20
+ set -- $(for a in "$@"; do echo $a.app; done)
21
+ bundle exec cap "$@" deploy:began deploy:lock_migrate deploy:migrate "$nm_task" deploy:finished
22
+ }
23
+
24
+ require sub "$BASH_SOURCE" "$@"
@@ -1,33 +1,33 @@
1
1
  #!/bin/bash
2
2
 
3
3
  #/ NAME
4
- #/ ao-unlock -- unlock a deploy
4
+ #/ unlock --
5
5
  #/
6
6
  #/ SYNOPSIS
7
- #/ ao unlock [deploy_set...]
8
- #/ ao unlock migrate|compare [deploy_set...]
7
+ #/
8
+ #/ unlock
9
+ #/ unlock compare|migrate
10
+ #/
9
11
 
10
12
  # figure out the project root under which bin, lib live
11
13
  shome="$(cd -P -- "$(dirname -- "$BASH_SOURCE")/.." && pwd -P)"
12
14
 
13
15
  # load a jason bourne library
14
- source "$shome/sbin/_treadstone"
15
-
16
- # parse the command-line
16
+ source "$shome/libexec/_treadstone"
17
+ require 'ao'
17
18
 
18
- # entry point
19
- function main {
19
+ function aomain {
20
20
  case "${1}" in
21
21
  compare|migrate)
22
22
  nm_lock="${1}"; shift
23
23
  set -- $(for a in "$@"; do echo $a.app; done)
24
- bundle exec cap "$@" "deploy:unlock_${nm_lock}"
24
+ bundle exec cap "$@" deploy:began "deploy:unlock_${nm_lock}" deploy:finished
25
25
  ;;
26
26
  *)
27
27
  set -- $(for a in "$@"; do echo $a.app; done)
28
- bundle exec cap "$@" deploy:unlock
28
+ bundle exec cap "$@" deploy:began deploy:unlock deploy:finished
29
29
  ;;
30
30
  esac
31
31
  }
32
32
 
33
- require 'sub' "$BASH_SOURCE" "$@"
33
+ require sub "$BASH_SOURCE" "$@"
data/libexec/build CHANGED
@@ -10,7 +10,7 @@
10
10
  shome="$(cd -P -- "$(dirname -- "$BASH_SOURCE")/.." && pwd -P)"
11
11
 
12
12
  # load a jason bourne library
13
- source "$shome/bin/_treadstone"
13
+ source "$shome/libexec/_treadstone"
14
14
 
15
15
  # define command line options:
16
16
  DEFINE_string 'name' "$(basename "$shome")" 'name of gem' 'n'
data/libexec/build-gem CHANGED
@@ -10,7 +10,7 @@
10
10
  shome="$(cd -P -- "$(dirname -- "$BASH_SOURCE")/.." && pwd -P)"
11
11
 
12
12
  # load a jason bourne library
13
- source "$shome/bin/_treadstone"
13
+ source "$shome/libexec/_treadstone"
14
14
 
15
15
  # define command line options:
16
16
  DEFINE_string 'name' "$(basename "$shome")" 'name of gem' 'n'
data/libexec/bump CHANGED
@@ -13,7 +13,7 @@
13
13
  shome="$(cd -P -- "$(dirname -- "$BASH_SOURCE")/.." && pwd -P)"
14
14
 
15
15
  # load a jason bourne library
16
- source "$shome/bin/_treadstone"
16
+ source "$shome/libexec/_treadstone"
17
17
 
18
18
  # parse the command-line
19
19
  DEFINE_boolean 'dirty' "$FLAGS_FALSE" 'force bumping in unclean work area' 'f'
data/libexec/edit-gem CHANGED
@@ -12,7 +12,7 @@
12
12
  shome="$(cd -P -- "$(dirname -- "$BASH_SOURCE")/.." && pwd -P)"
13
13
 
14
14
  # load a jason bourne library
15
- source "$shome/bin/_treadstone"
15
+ source "$shome/libexec/_treadstone"
16
16
 
17
17
  # define command line options:
18
18
  DEFINE_boolean "update" "$FLAGS_FALSE" "finish editing a local gem and updates project" "u"