oban 0.1.4 → 0.1.5
Sign up to get free protection for your applications and to get access to all the features.
- data/bin/oban +12 -1
- data/lib/oban/oban.rb +67 -18
- data/lib/oban/version.rb +1 -1
- metadata +4 -4
data/bin/oban
CHANGED
@@ -4,4 +4,15 @@ require 'oban'
|
|
4
4
|
require 'oban/colorify'
|
5
5
|
|
6
6
|
oban = Oban.new
|
7
|
-
|
7
|
+
|
8
|
+
if ARGV[0].nil? then
|
9
|
+
oban.show_help
|
10
|
+
else
|
11
|
+
arg = ARGV[0]
|
12
|
+
case arg
|
13
|
+
when "--help" then oban.show_help
|
14
|
+
when "deploy" then oban.deploy
|
15
|
+
when "rollback" then oban.rollback
|
16
|
+
when "push" then oban.push
|
17
|
+
end
|
18
|
+
end
|
data/lib/oban/oban.rb
CHANGED
@@ -8,8 +8,11 @@ class Oban
|
|
8
8
|
attr_accessor :submods # TODO: should be a list eventually
|
9
9
|
|
10
10
|
def initialize
|
11
|
-
|
12
11
|
set_config
|
12
|
+
end
|
13
|
+
|
14
|
+
def real_init
|
15
|
+
check_for_clean
|
13
16
|
|
14
17
|
# grab config for current repository (based on github)
|
15
18
|
current = `git remote show origin | grep Fetch`
|
@@ -36,9 +39,59 @@ class Oban
|
|
36
39
|
|
37
40
|
self.heroku_remote = remote
|
38
41
|
|
42
|
+
set_remotes
|
43
|
+
|
39
44
|
set_submods
|
40
45
|
|
41
|
-
|
46
|
+
end
|
47
|
+
|
48
|
+
# show help message
|
49
|
+
def show_help
|
50
|
+
puts colorBlue("oban v??")
|
51
|
+
puts colorBlue("homepage: http://github.com/feydr/oban")
|
52
|
+
puts colorBlue("clone: git@github.com:feydr/oban.git")
|
53
|
+
puts colorBlue("\r" + "-"*20)
|
54
|
+
puts colorBlue("\tCommands:")
|
55
|
+
puts colorBlue("\t--help\tthis listing")
|
56
|
+
puts colorBlue("\tdeploy\tdeploy the local repository")
|
57
|
+
puts colorBlue("\trollback\trollback the local repository")
|
58
|
+
exit
|
59
|
+
end
|
60
|
+
|
61
|
+
# check for any uncommitted changes and bail if found
|
62
|
+
def check_for_clean
|
63
|
+
# can't believe there's not a simple yes/no here..
|
64
|
+
out = `git status --porcelain`
|
65
|
+
|
66
|
+
unless out.empty? then
|
67
|
+
puts colorRed("you have uncommitted changes -- please commit and try again:\r\t#{out}")
|
68
|
+
exit
|
69
|
+
end
|
70
|
+
|
71
|
+
end
|
72
|
+
|
73
|
+
def set_remotes
|
74
|
+
# only add remotes if necessary
|
75
|
+
remotes = `git remote`
|
76
|
+
|
77
|
+
if remotes.match('heroku').nil? then
|
78
|
+
`git remote add heroku #{self.heroku_remote}`
|
79
|
+
end
|
80
|
+
end
|
81
|
+
|
82
|
+
# checkout deploy - 1 branch from github and push to heroku
|
83
|
+
def rollback
|
84
|
+
puts colorBlue('rolling back to commit blah')
|
85
|
+
end
|
86
|
+
|
87
|
+
# ensure that our submodule is reset
|
88
|
+
def reinit_submods
|
89
|
+
# add back in our submodules
|
90
|
+
`git submodule init`
|
91
|
+
`git submodule update`
|
92
|
+
|
93
|
+
# ensure we checkout master (cause it'll default to headless)
|
94
|
+
`git --git-dir=#{self.submods}/.git checkout master`
|
42
95
|
end
|
43
96
|
|
44
97
|
def set_config
|
@@ -70,12 +123,11 @@ class Oban
|
|
70
123
|
|
71
124
|
if !submods.empty?
|
72
125
|
self.submods = submods.split[1]
|
73
|
-
|
74
|
-
puts colorBlue("found submodule: #{self.submods}")
|
75
126
|
end
|
76
127
|
|
77
128
|
end
|
78
129
|
|
130
|
+
# remove all mention of submodules but leave the data in
|
79
131
|
def rm_submods
|
80
132
|
# rm git modules
|
81
133
|
`rm -rf .gitmodules`
|
@@ -86,19 +138,22 @@ class Oban
|
|
86
138
|
`git rm --cached #{self.submods}`
|
87
139
|
end
|
88
140
|
|
141
|
+
# add in submod data
|
89
142
|
def add_submod_data
|
90
143
|
`git add #{self.submods}`
|
91
144
|
end
|
92
145
|
|
93
|
-
def
|
146
|
+
def deploy
|
147
|
+
|
148
|
+
real_init
|
149
|
+
|
94
150
|
# switch to master before anything else
|
95
151
|
`git checkout master`
|
96
152
|
|
97
153
|
puts colorBlue('deploying')
|
98
154
|
|
99
|
-
#
|
100
|
-
#
|
101
|
-
# make sure we have config/database.yml
|
155
|
+
# might need to change the logic on this to do reset --hard and
|
156
|
+
# friends so we don't clobber the remote deploy branch
|
102
157
|
|
103
158
|
# test to see if deploy exists.. wipe it if it does..
|
104
159
|
branches = `git branch`
|
@@ -116,25 +171,19 @@ class Oban
|
|
116
171
|
add_submod_data
|
117
172
|
end
|
118
173
|
|
119
|
-
|
120
|
-
remotes = `git remote`
|
174
|
+
`git commit -a -m "deploying"`
|
121
175
|
|
122
|
-
|
123
|
-
|
124
|
-
end
|
176
|
+
# push to deploy branch first
|
177
|
+
`git push origin +deploy`
|
125
178
|
|
126
|
-
`git commit -a -m "deploying"`
|
127
179
|
# btw --force should NEVER be used (except for this case) ;)
|
128
180
|
`git push --force heroku HEAD:master`
|
129
181
|
|
130
182
|
# add back in our submodules
|
131
183
|
puts colorBlue('switching back to master')
|
132
184
|
`git checkout master`
|
133
|
-
`git submodule init`
|
134
|
-
`git submodule update`
|
135
185
|
|
136
|
-
|
137
|
-
`git --git-dir=#{self.submods}/.git checkout master`
|
186
|
+
reinit_submods
|
138
187
|
|
139
188
|
end
|
140
189
|
|
data/lib/oban/version.rb
CHANGED
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: oban
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 17
|
5
5
|
prerelease: false
|
6
6
|
segments:
|
7
7
|
- 0
|
8
8
|
- 1
|
9
|
-
-
|
10
|
-
version: 0.1.
|
9
|
+
- 5
|
10
|
+
version: 0.1.5
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Ian Eyberg
|
@@ -15,7 +15,7 @@ autorequire:
|
|
15
15
|
bindir: bin
|
16
16
|
cert_chain: []
|
17
17
|
|
18
|
-
date: 2010-10-
|
18
|
+
date: 2010-10-12 00:00:00 -05:00
|
19
19
|
default_executable:
|
20
20
|
dependencies:
|
21
21
|
- !ruby/object:Gem::Dependency
|