oban 0.1.2
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/CHANGELOG.md +0 -0
- data/LICENSE +0 -0
- data/README.md +15 -0
- data/ROADMAP.md +0 -0
- data/bin/oban +7 -0
- data/lib/oban/colorify.rb +25 -0
- data/lib/oban/oban.rb +107 -0
- data/lib/oban/version.rb +3 -0
- data/lib/oban.rb +1 -0
- metadata +91 -0
data/CHANGELOG.md
ADDED
File without changes
|
data/LICENSE
ADDED
File without changes
|
data/README.md
ADDED
@@ -0,0 +1,15 @@
|
|
1
|
+
####ABOUT:
|
2
|
+
|
3
|
+
oban hopes to simplify the deploy process for apps on heroku that use
|
4
|
+
submodules
|
5
|
+
|
6
|
+
####INSTALL:
|
7
|
+
sudo gem install oban --no-ri --no-rdoc
|
8
|
+
|
9
|
+
# edit oban.yml.example
|
10
|
+
cp oban.yml ~/.oban.yml
|
11
|
+
|
12
|
+
####Example Deploy:
|
13
|
+
me@myhost:~/my_proj$ oban
|
14
|
+
|
15
|
+
####TODO:
|
data/ROADMAP.md
ADDED
File without changes
|
data/bin/oban
ADDED
@@ -0,0 +1,25 @@
|
|
1
|
+
module Colorify
|
2
|
+
def colorBlack(text)
|
3
|
+
return "\033[1m\033[30m #{text} \033[0m"
|
4
|
+
end
|
5
|
+
|
6
|
+
def colorWhite(text)
|
7
|
+
return "\033[1m\033[37m #{text} \033[0m"
|
8
|
+
end
|
9
|
+
|
10
|
+
def colorGreen(text)
|
11
|
+
return "\033[1m\033[32m #{text} \033[0m"
|
12
|
+
end
|
13
|
+
|
14
|
+
def colorYellow(text)
|
15
|
+
return "\033[1m\033[33m #{text} \033[0m"
|
16
|
+
end
|
17
|
+
|
18
|
+
def colorRed(text)
|
19
|
+
return "\033[1m\033[31m #{text} \033[0m"
|
20
|
+
end
|
21
|
+
|
22
|
+
def colorBlue(text)
|
23
|
+
return "\033[1m\033[34m #{text} \033[0m"
|
24
|
+
end
|
25
|
+
end
|
data/lib/oban/oban.rb
ADDED
@@ -0,0 +1,107 @@
|
|
1
|
+
require 'oban/colorify'
|
2
|
+
|
3
|
+
class Oban
|
4
|
+
include Colorify
|
5
|
+
|
6
|
+
attr_accessor :config
|
7
|
+
attr_accessor :heroku_remote
|
8
|
+
|
9
|
+
def initialize
|
10
|
+
conf_file = ENV['HOME'] + '/.oban.yml'
|
11
|
+
|
12
|
+
unless FileTest.exist?(conf_file)
|
13
|
+
puts colorRed('Missing Conf File!')
|
14
|
+
puts colorRed('\tPlease copy oban.yml.example to ~/.oban.yml and edit')
|
15
|
+
exit
|
16
|
+
end
|
17
|
+
|
18
|
+
self.config = YAML::load(File.open(conf_file) { |f| @stuff = f.read })
|
19
|
+
|
20
|
+
# grab config for current repository (based on github)
|
21
|
+
current = `git remote show origin | grep Fetch`
|
22
|
+
|
23
|
+
unless !current.empty? then
|
24
|
+
puts colorRed("Not a git repository!")
|
25
|
+
exit
|
26
|
+
end
|
27
|
+
|
28
|
+
current = current.split("URL:").last.strip
|
29
|
+
remote = ""
|
30
|
+
|
31
|
+
config.each do |e|
|
32
|
+
if !e["github"].match(current).nil? then
|
33
|
+
remote = e["heroku"]
|
34
|
+
end
|
35
|
+
end
|
36
|
+
|
37
|
+
unless !remote.empty?
|
38
|
+
puts colorRed("Could not Find Remote! Sorry")
|
39
|
+
puts colorRed("please ensure your ~/.oban.yml has a remote listed for this repo")
|
40
|
+
exit
|
41
|
+
end
|
42
|
+
|
43
|
+
self.heroku_remote = remote
|
44
|
+
|
45
|
+
puts colorBlue("using #{heroku_remote}")
|
46
|
+
end
|
47
|
+
|
48
|
+
def push
|
49
|
+
# switch to master before anything else
|
50
|
+
`git checkout master`
|
51
|
+
|
52
|
+
puts colorBlue('deploying')
|
53
|
+
|
54
|
+
# make sure we have config/s3.yml
|
55
|
+
# make sure we have config/mongo.yml
|
56
|
+
# make sure we have config/database.yml
|
57
|
+
|
58
|
+
# test to see if deploy exists.. wipe it if it does..
|
59
|
+
branches = `git branch`
|
60
|
+
|
61
|
+
if !branches.match('deploy').nil? then
|
62
|
+
`git branch -D deploy`
|
63
|
+
end
|
64
|
+
|
65
|
+
# create new branch then checkout
|
66
|
+
`git branch deploy`
|
67
|
+
`git checkout deploy`
|
68
|
+
|
69
|
+
# rm git modules
|
70
|
+
# needs to be refactored a bit better
|
71
|
+
`rm -rf .gitmodules`
|
72
|
+
|
73
|
+
#`rm -rf app/models/shared/.git`
|
74
|
+
`rm -rf app/models/.git`
|
75
|
+
|
76
|
+
`git rm --cached app/models`
|
77
|
+
|
78
|
+
#`git rm --cached app/models`
|
79
|
+
#`git rm --cached app/models/shared`
|
80
|
+
|
81
|
+
# Time.now.to_i hack?
|
82
|
+
|
83
|
+
`git add app/models`
|
84
|
+
|
85
|
+
#`rm -rf \`find . -mindepth 2 -name .git\``
|
86
|
+
#`git add .`
|
87
|
+
|
88
|
+
# only add remotes if necessary
|
89
|
+
remotes = `git remote`
|
90
|
+
|
91
|
+
if remotes.match('heroku').nil? then
|
92
|
+
heroku_remote = ""
|
93
|
+
`git remote add heroku #{heroku_remote}`
|
94
|
+
end
|
95
|
+
|
96
|
+
`git commit -a -m "deploying"`
|
97
|
+
# btw --force should NEVER be used (except for this case) ;)
|
98
|
+
`git push --force heroku HEAD:master`
|
99
|
+
|
100
|
+
# add back in our submodules
|
101
|
+
puts colorBlue('switching back to master')
|
102
|
+
`git checkout master`
|
103
|
+
`git submodule init`
|
104
|
+
`git submodule update`
|
105
|
+
end
|
106
|
+
|
107
|
+
end
|
data/lib/oban/version.rb
ADDED
data/lib/oban.rb
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
require 'oban/oban.rb'
|
metadata
ADDED
@@ -0,0 +1,91 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: oban
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
hash: 31
|
5
|
+
prerelease: false
|
6
|
+
segments:
|
7
|
+
- 0
|
8
|
+
- 1
|
9
|
+
- 2
|
10
|
+
version: 0.1.2
|
11
|
+
platform: ruby
|
12
|
+
authors:
|
13
|
+
- Ian Eyberg
|
14
|
+
autorequire:
|
15
|
+
bindir: bin
|
16
|
+
cert_chain: []
|
17
|
+
|
18
|
+
date: 2010-10-06 00:00:00 -05:00
|
19
|
+
default_executable:
|
20
|
+
dependencies:
|
21
|
+
- !ruby/object:Gem::Dependency
|
22
|
+
name: rspec
|
23
|
+
prerelease: false
|
24
|
+
requirement: &id001 !ruby/object:Gem::Requirement
|
25
|
+
none: false
|
26
|
+
requirements:
|
27
|
+
- - ">="
|
28
|
+
- !ruby/object:Gem::Version
|
29
|
+
hash: 3
|
30
|
+
segments:
|
31
|
+
- 0
|
32
|
+
version: "0"
|
33
|
+
type: :development
|
34
|
+
version_requirements: *id001
|
35
|
+
description: deploy multiple apps with submodules to heroku (and others) with ease
|
36
|
+
email:
|
37
|
+
- ian@seeinginteractive.com
|
38
|
+
executables:
|
39
|
+
- oban
|
40
|
+
extensions: []
|
41
|
+
|
42
|
+
extra_rdoc_files: []
|
43
|
+
|
44
|
+
files:
|
45
|
+
- bin/oban
|
46
|
+
- lib/oban.rb
|
47
|
+
- lib/oban/oban.rb
|
48
|
+
- lib/oban/colorify.rb
|
49
|
+
- lib/oban/version.rb
|
50
|
+
- LICENSE
|
51
|
+
- README.md
|
52
|
+
- ROADMAP.md
|
53
|
+
- CHANGELOG.md
|
54
|
+
has_rdoc: true
|
55
|
+
homepage: http://github.com/feydr/oban
|
56
|
+
licenses: []
|
57
|
+
|
58
|
+
post_install_message:
|
59
|
+
rdoc_options: []
|
60
|
+
|
61
|
+
require_paths:
|
62
|
+
- lib
|
63
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
64
|
+
none: false
|
65
|
+
requirements:
|
66
|
+
- - ">="
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
hash: 3
|
69
|
+
segments:
|
70
|
+
- 0
|
71
|
+
version: "0"
|
72
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
73
|
+
none: false
|
74
|
+
requirements:
|
75
|
+
- - ">="
|
76
|
+
- !ruby/object:Gem::Version
|
77
|
+
hash: 23
|
78
|
+
segments:
|
79
|
+
- 1
|
80
|
+
- 3
|
81
|
+
- 6
|
82
|
+
version: 1.3.6
|
83
|
+
requirements: []
|
84
|
+
|
85
|
+
rubyforge_project: oban
|
86
|
+
rubygems_version: 1.3.7
|
87
|
+
signing_key:
|
88
|
+
specification_version: 3
|
89
|
+
summary: deploy multiple apps with submodules to heroku (and others) with ease
|
90
|
+
test_files: []
|
91
|
+
|