alpha_omega 1.2.1 → 1.3.1

Sign up to get free protection for your applications and to get access to all the features.
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"