rbdock 0.1.1 → 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/README.md +4 -13
- data/bin/rbdock +10 -0
- data/lib/rbdock.rb +43 -1
- data/lib/rbdock/command.rb +2 -1
- data/lib/rbdock/command/options.rb +6 -3
- data/lib/rbdock/generate.rb +7 -0
- data/lib/rbdock/version.rb +1 -1
- data/rbdock.gemspec +3 -2
- metadata +53 -15
- checksums.yaml +0 -7
data/README.md
CHANGED
@@ -8,24 +8,15 @@ Dockerfile to prepare ruby is almost common, so generate its common parts. This
|
|
8
8
|
|
9
9
|
## Installation
|
10
10
|
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
And then execute:
|
16
|
-
|
17
|
-
$ bundle
|
18
|
-
|
19
|
-
Or install it yourself as:
|
20
|
-
|
21
|
-
$ gem install rbdock
|
22
|
-
|
11
|
+
```bash
|
12
|
+
$ gem install rbdock
|
13
|
+
```
|
23
14
|
|
24
15
|
## Usage
|
25
16
|
|
26
17
|
### Create Dockerfile to build ruby
|
27
18
|
|
28
|
-
Create `Dockerfile` to build ruby 2.
|
19
|
+
Create `Dockerfile` to build ruby 2.1.0 ready image.
|
29
20
|
|
30
21
|
```
|
31
22
|
$ rbdock 2.1.0
|
data/bin/rbdock
CHANGED
@@ -1,4 +1,14 @@
|
|
1
1
|
#!/usr/bin/env ruby
|
2
2
|
|
3
|
+
argv = ARGV.dup
|
4
|
+
|
5
|
+
if argv.include?("--debug")
|
6
|
+
argv.delete("--debug")
|
7
|
+
ENV["RBDOCK_LOG"] = "debug"
|
8
|
+
end
|
9
|
+
|
3
10
|
require 'rbdock'
|
11
|
+
logger = Log4r::Logger.new("rbdock::bin::rbdock")
|
12
|
+
logger.info("`rbdock` invoked: #{ARGV.inspect}")
|
13
|
+
|
4
14
|
Rbdock::Command.run(ARGV)
|
data/lib/rbdock.rb
CHANGED
@@ -1,5 +1,47 @@
|
|
1
|
-
|
1
|
+
# Enable logging if it is requested.
|
2
|
+
require "log4r"
|
3
|
+
|
4
|
+
if ENV["RBDOCK_LOG"]
|
5
|
+
require "log4r/config"
|
6
|
+
Log4r.define_levels(*Log4r::Log4rConfig::LogLevels)
|
7
|
+
|
8
|
+
level = nil
|
9
|
+
begin
|
10
|
+
level = Log4r.const_get(ENV["RBDOCK_LOG"].upcase)
|
11
|
+
rescue NameError
|
12
|
+
level = nil
|
13
|
+
end
|
14
|
+
|
15
|
+
level = nil if !level.is_a?(Integer)
|
16
|
+
|
17
|
+
if !level
|
18
|
+
STDERR.puts "Invalid RBDOCK_LOG level is set: #{ENV["RBDOCK_LOG"]}"
|
19
|
+
STDERR.puts "Please use one of the standard log levels: debug, info, warn, or error"
|
20
|
+
end
|
21
|
+
|
22
|
+
if level
|
23
|
+
logger = Log4r::Logger.new("rbdock")
|
24
|
+
logger.outputters = Log4r::Outputter.stderr
|
25
|
+
logger.level = level
|
26
|
+
logger = nil
|
27
|
+
end
|
28
|
+
|
29
|
+
end
|
30
|
+
|
31
|
+
# Always make the version avaiable
|
2
32
|
require "rbdock/version"
|
33
|
+
|
34
|
+
# Display global information
|
35
|
+
global_logger = Log4r::Logger.new("rbdock::global")
|
36
|
+
global_logger.info("Rbdock version: #{Rbdock::VERSION}")
|
37
|
+
global_logger.info("Ruby version: #{RUBY_VERSION}")
|
38
|
+
global_logger.info("RubyGems version: #{Gem::VERSION}")
|
39
|
+
ENV.each do |k,v|
|
40
|
+
global_logger.info("#{k}=#{v.inspect}") if k =~ /^RBDOCK_/
|
41
|
+
end
|
42
|
+
|
43
|
+
require "rbdock/helpers"
|
44
|
+
|
3
45
|
module Rbdock
|
4
46
|
autoload :Command, "rbdock/command"
|
5
47
|
autoload :Generate, "rbdock/generate"
|
data/lib/rbdock/command.rb
CHANGED
@@ -5,6 +5,8 @@ module Rbdock
|
|
5
5
|
module Options
|
6
6
|
|
7
7
|
def self.parse!(argv)
|
8
|
+
|
9
|
+
# Restore option and its value
|
8
10
|
options = {}
|
9
11
|
|
10
12
|
set_default_value options
|
@@ -35,7 +37,7 @@ module Rbdock
|
|
35
37
|
opt.on('--rbenv', desc='Use rbenv') {
|
36
38
|
options[:use_rbenv] = true
|
37
39
|
}
|
38
|
-
opt.on('--rvm',
|
40
|
+
opt.on('--rvm', desc='Use rvm') {
|
39
41
|
options[:use_rvm] = true
|
40
42
|
}
|
41
43
|
opt.on('-a path','--app=path', 'Add Rails/Sinatra app') { |path|
|
@@ -43,7 +45,8 @@ module Rbdock
|
|
43
45
|
}
|
44
46
|
opt.on('-l','--list', 'List all available ruby versions') {
|
45
47
|
list_ruby_versions
|
46
|
-
}
|
48
|
+
}
|
49
|
+
opt.on('--debug', desc='Run as debug mode')
|
47
50
|
end
|
48
51
|
end
|
49
52
|
|
@@ -56,7 +59,7 @@ module Rbdock
|
|
56
59
|
end
|
57
60
|
|
58
61
|
def self.show_help opt
|
59
|
-
opt.banner = "Usage: #{opt.program_name} <ruby-versions> [
|
62
|
+
opt.banner = "Usage: #{opt.program_name} <ruby-versions> [args]"
|
60
63
|
opt.on_tail('-h','--help','Show this message') {
|
61
64
|
STDERR.puts opt.help
|
62
65
|
exit
|
data/lib/rbdock/generate.rb
CHANGED
@@ -9,6 +9,9 @@ module Rbdock
|
|
9
9
|
end
|
10
10
|
|
11
11
|
def initialize options
|
12
|
+
@logger = Log4r::Logger.new("rbdock::generate")
|
13
|
+
@logger.info("Generate options: #{options.inspect}")
|
14
|
+
|
12
15
|
@image = options[:image]
|
13
16
|
@ruby_versions = options[:ruby_versions]
|
14
17
|
@use_rbenv = options[:use_rbenv]
|
@@ -60,6 +63,7 @@ module Rbdock
|
|
60
63
|
end
|
61
64
|
|
62
65
|
def default_template
|
66
|
+
@logger.debug("No ruby version manager")
|
63
67
|
template = base_package_template
|
64
68
|
template << erubis(Rbdock.source_root.join("templates/default/ruby.erb"))
|
65
69
|
template << erubis(Rbdock.source_root.join("templates/default/bundler.erb"))
|
@@ -68,6 +72,7 @@ module Rbdock
|
|
68
72
|
end
|
69
73
|
|
70
74
|
def rbenv_template
|
75
|
+
@logger.debug("Use rbenv for ruby version manager")
|
71
76
|
template = base_package_template
|
72
77
|
template << erubis(Rbdock.source_root.join("templates/rbenv/ruby.erb"))
|
73
78
|
template << erubis(Rbdock.source_root.join("templates/rbenv/bundler.erb"))
|
@@ -76,10 +81,12 @@ module Rbdock
|
|
76
81
|
end
|
77
82
|
|
78
83
|
def rvm_template
|
84
|
+
@logger.debug("Use rvm for ruby version manager")
|
79
85
|
template = base_package_template
|
80
86
|
template << erubis(Rbdock.source_root.join("templates/rvm/ruby.erb"))
|
81
87
|
template << erubis(Rbdock.source_root.join("templates/rvm/bundler.erb"))
|
82
88
|
template << erubis(Rbdock.source_root.join("templates/rvm/app.erb")) if @app_path
|
89
|
+
template
|
83
90
|
end
|
84
91
|
|
85
92
|
def self.ruby_versions
|
data/lib/rbdock/version.rb
CHANGED
data/rbdock.gemspec
CHANGED
@@ -8,8 +8,8 @@ Gem::Specification.new do |spec|
|
|
8
8
|
spec.version = Rbdock::VERSION
|
9
9
|
spec.authors = ["tcnksm"]
|
10
10
|
spec.email = ["nsd22843@gmail.com"]
|
11
|
-
spec.summary = %q{Generate Dockerfile
|
12
|
-
spec.description = %q{Generate Dockerfile
|
11
|
+
spec.summary = %q{Generate Dockerfile for ruby/rails/sinatra.}
|
12
|
+
spec.description = %q{Generate Dockerfile for ruby or running rails/sinatra.}
|
13
13
|
spec.homepage = "https://github.com/tcnksm/rbdock"
|
14
14
|
spec.license = "MIT"
|
15
15
|
|
@@ -19,6 +19,7 @@ Gem::Specification.new do |spec|
|
|
19
19
|
spec.require_paths = ["lib"]
|
20
20
|
|
21
21
|
spec.add_dependency "erubis", "~> 2.7.0"
|
22
|
+
spec.add_dependency "log4r", "~> 1.1.10"
|
22
23
|
spec.add_development_dependency "bundler", "~> 1.5"
|
23
24
|
spec.add_development_dependency "rake"
|
24
25
|
spec.add_development_dependency "rspec", ">= 2.13"
|
metadata
CHANGED
@@ -1,18 +1,20 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rbdock
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.2
|
5
|
+
prerelease:
|
5
6
|
platform: ruby
|
6
7
|
authors:
|
7
8
|
- tcnksm
|
8
9
|
autorequire:
|
9
10
|
bindir: bin
|
10
11
|
cert_chain: []
|
11
|
-
date: 2014-03-
|
12
|
+
date: 2014-03-15 00:00:00.000000000 Z
|
12
13
|
dependencies:
|
13
14
|
- !ruby/object:Gem::Dependency
|
14
15
|
name: erubis
|
15
16
|
requirement: !ruby/object:Gem::Requirement
|
17
|
+
none: false
|
16
18
|
requirements:
|
17
19
|
- - ~>
|
18
20
|
- !ruby/object:Gem::Version
|
@@ -20,13 +22,31 @@ dependencies:
|
|
20
22
|
type: :runtime
|
21
23
|
prerelease: false
|
22
24
|
version_requirements: !ruby/object:Gem::Requirement
|
25
|
+
none: false
|
23
26
|
requirements:
|
24
27
|
- - ~>
|
25
28
|
- !ruby/object:Gem::Version
|
26
29
|
version: 2.7.0
|
30
|
+
- !ruby/object:Gem::Dependency
|
31
|
+
name: log4r
|
32
|
+
requirement: !ruby/object:Gem::Requirement
|
33
|
+
none: false
|
34
|
+
requirements:
|
35
|
+
- - ~>
|
36
|
+
- !ruby/object:Gem::Version
|
37
|
+
version: 1.1.10
|
38
|
+
type: :runtime
|
39
|
+
prerelease: false
|
40
|
+
version_requirements: !ruby/object:Gem::Requirement
|
41
|
+
none: false
|
42
|
+
requirements:
|
43
|
+
- - ~>
|
44
|
+
- !ruby/object:Gem::Version
|
45
|
+
version: 1.1.10
|
27
46
|
- !ruby/object:Gem::Dependency
|
28
47
|
name: bundler
|
29
48
|
requirement: !ruby/object:Gem::Requirement
|
49
|
+
none: false
|
30
50
|
requirements:
|
31
51
|
- - ~>
|
32
52
|
- !ruby/object:Gem::Version
|
@@ -34,6 +54,7 @@ dependencies:
|
|
34
54
|
type: :development
|
35
55
|
prerelease: false
|
36
56
|
version_requirements: !ruby/object:Gem::Requirement
|
57
|
+
none: false
|
37
58
|
requirements:
|
38
59
|
- - ~>
|
39
60
|
- !ruby/object:Gem::Version
|
@@ -41,48 +62,55 @@ dependencies:
|
|
41
62
|
- !ruby/object:Gem::Dependency
|
42
63
|
name: rake
|
43
64
|
requirement: !ruby/object:Gem::Requirement
|
65
|
+
none: false
|
44
66
|
requirements:
|
45
|
-
- - '>='
|
67
|
+
- - ! '>='
|
46
68
|
- !ruby/object:Gem::Version
|
47
69
|
version: '0'
|
48
70
|
type: :development
|
49
71
|
prerelease: false
|
50
72
|
version_requirements: !ruby/object:Gem::Requirement
|
73
|
+
none: false
|
51
74
|
requirements:
|
52
|
-
- - '>='
|
75
|
+
- - ! '>='
|
53
76
|
- !ruby/object:Gem::Version
|
54
77
|
version: '0'
|
55
78
|
- !ruby/object:Gem::Dependency
|
56
79
|
name: rspec
|
57
80
|
requirement: !ruby/object:Gem::Requirement
|
81
|
+
none: false
|
58
82
|
requirements:
|
59
|
-
- - '>='
|
83
|
+
- - ! '>='
|
60
84
|
- !ruby/object:Gem::Version
|
61
85
|
version: '2.13'
|
62
86
|
type: :development
|
63
87
|
prerelease: false
|
64
88
|
version_requirements: !ruby/object:Gem::Requirement
|
89
|
+
none: false
|
65
90
|
requirements:
|
66
|
-
- - '>='
|
91
|
+
- - ! '>='
|
67
92
|
- !ruby/object:Gem::Version
|
68
93
|
version: '2.13'
|
69
94
|
- !ruby/object:Gem::Dependency
|
70
95
|
name: guard-rspec
|
71
96
|
requirement: !ruby/object:Gem::Requirement
|
97
|
+
none: false
|
72
98
|
requirements:
|
73
|
-
- - '>='
|
99
|
+
- - ! '>='
|
74
100
|
- !ruby/object:Gem::Version
|
75
101
|
version: '0'
|
76
102
|
type: :development
|
77
103
|
prerelease: false
|
78
104
|
version_requirements: !ruby/object:Gem::Requirement
|
105
|
+
none: false
|
79
106
|
requirements:
|
80
|
-
- - '>='
|
107
|
+
- - ! '>='
|
81
108
|
- !ruby/object:Gem::Version
|
82
109
|
version: '0'
|
83
110
|
- !ruby/object:Gem::Dependency
|
84
111
|
name: yard
|
85
112
|
requirement: !ruby/object:Gem::Requirement
|
113
|
+
none: false
|
86
114
|
requirements:
|
87
115
|
- - ~>
|
88
116
|
- !ruby/object:Gem::Version
|
@@ -90,6 +118,7 @@ dependencies:
|
|
90
118
|
type: :development
|
91
119
|
prerelease: false
|
92
120
|
version_requirements: !ruby/object:Gem::Requirement
|
121
|
+
none: false
|
93
122
|
requirements:
|
94
123
|
- - ~>
|
95
124
|
- !ruby/object:Gem::Version
|
@@ -97,6 +126,7 @@ dependencies:
|
|
97
126
|
- !ruby/object:Gem::Dependency
|
98
127
|
name: redcarpet
|
99
128
|
requirement: !ruby/object:Gem::Requirement
|
129
|
+
none: false
|
100
130
|
requirements:
|
101
131
|
- - ~>
|
102
132
|
- !ruby/object:Gem::Version
|
@@ -104,11 +134,12 @@ dependencies:
|
|
104
134
|
type: :development
|
105
135
|
prerelease: false
|
106
136
|
version_requirements: !ruby/object:Gem::Requirement
|
137
|
+
none: false
|
107
138
|
requirements:
|
108
139
|
- - ~>
|
109
140
|
- !ruby/object:Gem::Version
|
110
141
|
version: '2.2'
|
111
|
-
description: Generate Dockerfile
|
142
|
+
description: Generate Dockerfile for ruby or running rails/sinatra.
|
112
143
|
email:
|
113
144
|
- nsd22843@gmail.com
|
114
145
|
executables:
|
@@ -147,27 +178,34 @@ files:
|
|
147
178
|
homepage: https://github.com/tcnksm/rbdock
|
148
179
|
licenses:
|
149
180
|
- MIT
|
150
|
-
metadata: {}
|
151
181
|
post_install_message:
|
152
182
|
rdoc_options: []
|
153
183
|
require_paths:
|
154
184
|
- lib
|
155
185
|
required_ruby_version: !ruby/object:Gem::Requirement
|
186
|
+
none: false
|
156
187
|
requirements:
|
157
|
-
- - '>='
|
188
|
+
- - ! '>='
|
158
189
|
- !ruby/object:Gem::Version
|
159
190
|
version: '0'
|
191
|
+
segments:
|
192
|
+
- 0
|
193
|
+
hash: 1155994554511253811
|
160
194
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
195
|
+
none: false
|
161
196
|
requirements:
|
162
|
-
- - '>='
|
197
|
+
- - ! '>='
|
163
198
|
- !ruby/object:Gem::Version
|
164
199
|
version: '0'
|
200
|
+
segments:
|
201
|
+
- 0
|
202
|
+
hash: 1155994554511253811
|
165
203
|
requirements: []
|
166
204
|
rubyforge_project:
|
167
|
-
rubygems_version:
|
205
|
+
rubygems_version: 1.8.23
|
168
206
|
signing_key:
|
169
|
-
specification_version:
|
170
|
-
summary: Generate Dockerfile
|
207
|
+
specification_version: 3
|
208
|
+
summary: Generate Dockerfile for ruby/rails/sinatra.
|
171
209
|
test_files:
|
172
210
|
- spec/spec_helper.rb
|
173
211
|
has_rdoc:
|
checksums.yaml
DELETED
@@ -1,7 +0,0 @@
|
|
1
|
-
---
|
2
|
-
SHA1:
|
3
|
-
metadata.gz: 4cfa13ab4da18f3c1bd1b22ca87701cbb5fcffe7
|
4
|
-
data.tar.gz: 9e2bea8e067608fbe48652f09678bf7e9fbca0c1
|
5
|
-
SHA512:
|
6
|
-
metadata.gz: 071c9d4d54e0518575239c329fb610078233283b559de7e49053bfe7d9350b9504c7ab208ac03ace06654b96a61d2a105e4b15a065cce3bca532136b938fc9e1
|
7
|
-
data.tar.gz: f94b85ad27890cd6807be7baed82cf99c662e179e35aab0434669bf33c13aa6d2cfec57e095081c5d8395ff6c792ad66b3eae0aa9bbd5c7f10a244a16abb1c6f
|