tsukuru 0.1.0 → 0.1.1
Sign up to get free protection for your applications and to get access to all the features.
- data/README.md +8 -9
- data/Rakefile +3 -0
- data/VERSION +1 -1
- data/bin/tsukuru +14 -19
- metadata +39 -4
data/README.md
CHANGED
@@ -1,11 +1,10 @@
|
|
1
1
|
Tsukuru will fetch your latest bundle and prepare it for running locally. It keeps an archive of downloaded bundles. You can also use restore from a local bundle (archived or manually downloaded).
|
2
2
|
|
3
|
-
Usage:
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
-u, --username Your Heroku username
|
3
|
+
Usage: tsukuru
|
4
|
+
-a, --app NAME Application name
|
5
|
+
-c, --capture Capture a new bundle instead of using the latest one
|
6
|
+
-h, --help Display this message
|
7
|
+
-l, --local FILE Use a local bundle instead of downloading
|
8
|
+
-t, --target PATH Path to where the application should be restored
|
9
|
+
-r, --reindex Start search deamon and reindex (sunspot + solr only)
|
10
|
+
|
data/Rakefile
CHANGED
@@ -7,6 +7,9 @@ begin
|
|
7
7
|
gemspec.email = "tel@jklm.no"
|
8
8
|
gemspec.homepage = "http://github.com/toreriklinnerud/tsukuru"
|
9
9
|
gemspec.authors = ["Tor Erik Linnerud"]
|
10
|
+
gemspec.add_dependency 'ruby-unix-now'
|
11
|
+
gemspec.add_dependency 'rest-client'
|
12
|
+
gemspec.add_dependency 'heroku'
|
10
13
|
|
11
14
|
end
|
12
15
|
Jeweler::GemcutterTasks.new
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.1.
|
1
|
+
0.1.1
|
data/bin/tsukuru
CHANGED
@@ -1,4 +1,5 @@
|
|
1
1
|
#!/usr/bin/env ruby
|
2
|
+
#encoding: utf-8
|
2
3
|
|
3
4
|
require 'heroku'
|
4
5
|
require 'restclient'
|
@@ -24,10 +25,6 @@ parser = OptionParser.new do|opts|
|
|
24
25
|
options.capture = true
|
25
26
|
end
|
26
27
|
|
27
|
-
opts.on( '-p', '--password', 'Yuur Heroku password' ) do |password|
|
28
|
-
options.password = password
|
29
|
-
end
|
30
|
-
|
31
28
|
opts.on('-h', '--help', 'Display this message') do
|
32
29
|
puts opts
|
33
30
|
exit
|
@@ -44,11 +41,6 @@ parser = OptionParser.new do|opts|
|
|
44
41
|
opts.on( '-r', '--reindex', 'Start search deamon and reindex (sunspot + solr only)' ) do
|
45
42
|
options.reindex = true
|
46
43
|
end
|
47
|
-
|
48
|
-
opts.on( '-u', '--username', 'Your Heroku username' ) do |password|
|
49
|
-
options.password = password
|
50
|
-
end
|
51
|
-
|
52
44
|
end.parse!
|
53
45
|
|
54
46
|
def error(msg)
|
@@ -63,10 +55,13 @@ options.current = options.target + 'current'
|
|
63
55
|
@options = options
|
64
56
|
|
65
57
|
if !options.local
|
66
|
-
|
67
|
-
|
58
|
+
credentials_file = File.expand_path("~/.heroku/credentials")
|
59
|
+
unless File.exist?(credentials_file)
|
60
|
+
error("Run 'heroku info --app #{options.app}' once to set up your Heroku credentials")
|
61
|
+
end
|
62
|
+
credentials = File.read(credentials_file).split("\n")
|
68
63
|
|
69
|
-
heroku = Heroku::Client.new(*
|
64
|
+
heroku = Heroku::Client.new(*credentials)
|
70
65
|
if options.capture
|
71
66
|
heroku.bundle_capture(options.app)
|
72
67
|
puts 'Starting capture'
|
@@ -113,9 +108,15 @@ FileUtils.mkdir_p(tempdir)
|
|
113
108
|
compression_type = (bundle_file =~ /.gz$/) ? :z : :j
|
114
109
|
run :tar, :x, compression_type, :C => tempdir, :f => bundle_file
|
115
110
|
|
116
|
-
extracted_folder = Dir.glob("#{tempdir}/*").first
|
111
|
+
extracted_folder = Pathname.new(Dir.glob("#{tempdir}/*").first)
|
117
112
|
error("Extraction of #{tempdir} failed") unless extracted_folder
|
118
113
|
|
114
|
+
if !options.local
|
115
|
+
archive = options.target + 'archive'
|
116
|
+
FileUtils.mkdir_p(archive)
|
117
|
+
run 'tar', '-cj', {:f => "#{archive}/#{bundle[:name]}.tar.bz2", :C => extracted_folder.dirname}, extracted_folder.basename
|
118
|
+
end
|
119
|
+
|
119
120
|
FileUtils.mkdir_p(options.target)
|
120
121
|
FileUtils.rm_rf(options.current)
|
121
122
|
FileUtils.mv(extracted_folder, options.current)
|
@@ -145,10 +146,4 @@ end
|
|
145
146
|
in_app 'mkdir -p tmp'
|
146
147
|
in_app 'touch', 'tmp/restart'
|
147
148
|
|
148
|
-
if !options.local
|
149
|
-
archive = options.target + 'archive'
|
150
|
-
FileUtils.mkdir_p(archive)
|
151
|
-
run 'tar', '-cjf', "#{archive}.tar.bz2", extracted_folder
|
152
|
-
end
|
153
|
-
|
154
149
|
FileUtils.rm_rf(tempdir)
|
metadata
CHANGED
@@ -5,8 +5,8 @@ version: !ruby/object:Gem::Version
|
|
5
5
|
segments:
|
6
6
|
- 0
|
7
7
|
- 1
|
8
|
-
-
|
9
|
-
version: 0.1.
|
8
|
+
- 1
|
9
|
+
version: 0.1.1
|
10
10
|
platform: ruby
|
11
11
|
authors:
|
12
12
|
- Tor Erik Linnerud
|
@@ -16,8 +16,43 @@ cert_chain: []
|
|
16
16
|
|
17
17
|
date: 2010-04-28 00:00:00 +01:00
|
18
18
|
default_executable: tsukuru
|
19
|
-
dependencies:
|
20
|
-
|
19
|
+
dependencies:
|
20
|
+
- !ruby/object:Gem::Dependency
|
21
|
+
name: ruby-unix-now
|
22
|
+
prerelease: false
|
23
|
+
requirement: &id001 !ruby/object:Gem::Requirement
|
24
|
+
requirements:
|
25
|
+
- - ">="
|
26
|
+
- !ruby/object:Gem::Version
|
27
|
+
segments:
|
28
|
+
- 0
|
29
|
+
version: "0"
|
30
|
+
type: :runtime
|
31
|
+
version_requirements: *id001
|
32
|
+
- !ruby/object:Gem::Dependency
|
33
|
+
name: rest-client
|
34
|
+
prerelease: false
|
35
|
+
requirement: &id002 !ruby/object:Gem::Requirement
|
36
|
+
requirements:
|
37
|
+
- - ">="
|
38
|
+
- !ruby/object:Gem::Version
|
39
|
+
segments:
|
40
|
+
- 0
|
41
|
+
version: "0"
|
42
|
+
type: :runtime
|
43
|
+
version_requirements: *id002
|
44
|
+
- !ruby/object:Gem::Dependency
|
45
|
+
name: heroku
|
46
|
+
prerelease: false
|
47
|
+
requirement: &id003 !ruby/object:Gem::Requirement
|
48
|
+
requirements:
|
49
|
+
- - ">="
|
50
|
+
- !ruby/object:Gem::Version
|
51
|
+
segments:
|
52
|
+
- 0
|
53
|
+
version: "0"
|
54
|
+
type: :runtime
|
55
|
+
version_requirements: *id003
|
21
56
|
description: Tsukuru will fetch your latest bundle and prepare it for running locally. It keeps an archive of downloaded bundles.
|
22
57
|
email: tel@jklm.no
|
23
58
|
executables:
|