dc-deck 0.1.0
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.
- checksums.yaml +7 -0
- data/lib/deck/build/archive.rb +32 -0
- data/lib/deck/build/cmd.rb +18 -0
- data/lib/deck/build/expose.rb +17 -0
- data/lib/deck/build/from.rb +21 -0
- data/lib/deck/build/name.rb +18 -0
- data/lib/deck/build/repository.rb +13 -0
- data/lib/deck/build/start.rb +19 -0
- data/lib/deck/build/work_dir.rb +17 -0
- data/lib/deck/build.rb +34 -0
- data/lib/deck/run.rb +7 -0
- data/lib/deck/submodule.rb +36 -0
- data/lib/deck.rb +17 -0
- metadata +190 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: f37eabed222fa4a18f32dd53e684203a26156522
|
4
|
+
data.tar.gz: c53485c18058a251d5ea878e16058ab7e931a0eb
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 345894e241846b2831d5c8a911033d8caad9c2727850cab28847751a065cf0245777c7d709f884d1ce3cbc5c1a65d66a37c5d0070db540e142627ca5df81e7c6
|
7
|
+
data.tar.gz: 657ce336267204eeda2932bace07e57645ea41996a9e3d17080b12ba107834cc9b4cf3fd39b8f365de1571582115e8d354852a6b717c72062679b05e8fa1ec53
|
@@ -0,0 +1,32 @@
|
|
1
|
+
class Deck::Build::Archive
|
2
|
+
include Deck::Submodule
|
3
|
+
|
4
|
+
register_name :archive
|
5
|
+
|
6
|
+
def execute(file, path: '/', type: :tar)
|
7
|
+
attributes[:file] = file
|
8
|
+
attributes[:path] = path
|
9
|
+
attributes[:type] = type
|
10
|
+
end
|
11
|
+
|
12
|
+
def value
|
13
|
+
attributes[:file]
|
14
|
+
end
|
15
|
+
|
16
|
+
def build_command(deps)
|
17
|
+
cmd = "ADD #{attributes[:file]} #{attributes[:path]}\n"
|
18
|
+
cmd += "RUN #{send attributes[:type]}"
|
19
|
+
end
|
20
|
+
|
21
|
+
def tar
|
22
|
+
"cd #{attributes[:path]} && tar xf #{filename}"
|
23
|
+
end
|
24
|
+
|
25
|
+
def tar_gz
|
26
|
+
"cd #{attributes[:path]} && tar zxf #{filename}"
|
27
|
+
end
|
28
|
+
|
29
|
+
def filename
|
30
|
+
File.basename attributes[:file]
|
31
|
+
end
|
32
|
+
end
|
@@ -0,0 +1,18 @@
|
|
1
|
+
class Deck::Build::Cmd
|
2
|
+
include Deck::Submodule
|
3
|
+
|
4
|
+
register_name :cmd
|
5
|
+
|
6
|
+
def execute(command, workdir: '/')
|
7
|
+
attributes[:command] = command
|
8
|
+
attributes[:workdir] = workdir
|
9
|
+
end
|
10
|
+
|
11
|
+
def value
|
12
|
+
attributes[:command]
|
13
|
+
end
|
14
|
+
|
15
|
+
def build_command(deps)
|
16
|
+
"RUN cd #{attributes[:workdir]} && #{attributes[:command]}"
|
17
|
+
end
|
18
|
+
end
|
@@ -0,0 +1,21 @@
|
|
1
|
+
class Deck::Build::From
|
2
|
+
include Deck::Submodule
|
3
|
+
|
4
|
+
register_name :from
|
5
|
+
dependancies :repository
|
6
|
+
|
7
|
+
def execute(name, of: nil)
|
8
|
+
attributes[:name] = name
|
9
|
+
attributes[:repository] = of
|
10
|
+
end
|
11
|
+
|
12
|
+
def value
|
13
|
+
attributes[:name]
|
14
|
+
end
|
15
|
+
|
16
|
+
def build_command(deps)
|
17
|
+
repository = attributes[:repository]
|
18
|
+
repository = deps[:repository].value if repository.nil?
|
19
|
+
"FROM #{repository}/#{value}"
|
20
|
+
end
|
21
|
+
end
|
@@ -0,0 +1,18 @@
|
|
1
|
+
class Deck::Build::Name
|
2
|
+
include Deck::Submodule
|
3
|
+
|
4
|
+
register_name :name
|
5
|
+
dependancies :repository
|
6
|
+
|
7
|
+
def execute(name)
|
8
|
+
attributes[:name] = name
|
9
|
+
end
|
10
|
+
|
11
|
+
def value
|
12
|
+
attributes[:name]
|
13
|
+
end
|
14
|
+
|
15
|
+
def build_command(deps)
|
16
|
+
# "#{deps[:repository].value}/#{value}"
|
17
|
+
end
|
18
|
+
end
|
@@ -0,0 +1,19 @@
|
|
1
|
+
class Deck::Build::Start
|
2
|
+
include Deck::Submodule
|
3
|
+
|
4
|
+
register_name :start
|
5
|
+
|
6
|
+
def execute(type, command, workdir: '/')
|
7
|
+
attributes[:type] = type
|
8
|
+
attributes[:command] = command
|
9
|
+
attributes[:workdir] = workdir
|
10
|
+
end
|
11
|
+
|
12
|
+
def value
|
13
|
+
attributes[:command]
|
14
|
+
end
|
15
|
+
|
16
|
+
def build_command(deps)
|
17
|
+
"CMD cd #{attributes[:workdir]} && #{attributes[:command]}"
|
18
|
+
end
|
19
|
+
end
|
@@ -0,0 +1,17 @@
|
|
1
|
+
class Deck::Build::WorkDir
|
2
|
+
include Deck::Submodule
|
3
|
+
|
4
|
+
register_name :workdir
|
5
|
+
|
6
|
+
def execute(workdir)
|
7
|
+
attributes[:workdir] = workdir
|
8
|
+
end
|
9
|
+
|
10
|
+
def value
|
11
|
+
attributes[:workdir]
|
12
|
+
end
|
13
|
+
|
14
|
+
def build_command(deps)
|
15
|
+
"WORKDIR #{attributes[:workdir]}"
|
16
|
+
end
|
17
|
+
end
|
data/lib/deck/build.rb
ADDED
@@ -0,0 +1,34 @@
|
|
1
|
+
class Deck::Build
|
2
|
+
autoload :Repository, 'deck/build/repository'
|
3
|
+
autoload :Name, 'deck/build/name'
|
4
|
+
autoload :From, 'deck/build/from'
|
5
|
+
autoload :Expose, 'deck/build/expose'
|
6
|
+
autoload :Cmd, 'deck/build/cmd'
|
7
|
+
autoload :Archive, 'deck/build/archive'
|
8
|
+
autoload :Start, 'deck/build/start'
|
9
|
+
autoload :WorkDir, 'deck/build/work_dir'
|
10
|
+
|
11
|
+
def initialize
|
12
|
+
@informations = {}
|
13
|
+
@call_order = []
|
14
|
+
self.class.constants.each do |sub|
|
15
|
+
sub = self.class.const_get(sub).new
|
16
|
+
@informations[sub.class.register_name] = sub
|
17
|
+
end
|
18
|
+
end
|
19
|
+
|
20
|
+
def build_command
|
21
|
+
@call_order.each do |info|
|
22
|
+
puts @informations[info].build_command(@informations) unless @informations[info].build_command(@informations).nil?
|
23
|
+
end
|
24
|
+
end
|
25
|
+
|
26
|
+
def execute
|
27
|
+
end
|
28
|
+
|
29
|
+
def method_missing(name, *args, &block)
|
30
|
+
raise NoMethodError, 'do not define such method' unless @informations.include? name.to_sym
|
31
|
+
@informations[name.to_sym].send :execute, *args
|
32
|
+
@call_order << name.to_sym unless @call_order.include? name.to_sym
|
33
|
+
end
|
34
|
+
end
|
data/lib/deck/run.rb
ADDED
@@ -0,0 +1,36 @@
|
|
1
|
+
module Deck::Submodule
|
2
|
+
def attributes
|
3
|
+
@attributes ||= {}
|
4
|
+
@attributes
|
5
|
+
end
|
6
|
+
|
7
|
+
def value
|
8
|
+
attributes
|
9
|
+
end
|
10
|
+
|
11
|
+
def execute(*args)
|
12
|
+
end
|
13
|
+
|
14
|
+
def build_command(deps)
|
15
|
+
end
|
16
|
+
|
17
|
+
module ClassMethods
|
18
|
+
def register_name(name=nil)
|
19
|
+
@name = name unless name.nil?
|
20
|
+
@name
|
21
|
+
end
|
22
|
+
|
23
|
+
def dependancies(dependancies=nil)
|
24
|
+
unless dependancies.nil?
|
25
|
+
dep_list = dependancies
|
26
|
+
dep_list = [dependancies] unless dependancies.instance_of? Array
|
27
|
+
@dependancies = dep_list
|
28
|
+
end
|
29
|
+
@dependancies
|
30
|
+
end
|
31
|
+
end
|
32
|
+
|
33
|
+
def self.included(target)
|
34
|
+
target.extend ClassMethods
|
35
|
+
end
|
36
|
+
end
|
data/lib/deck.rb
ADDED
@@ -0,0 +1,17 @@
|
|
1
|
+
module Deck
|
2
|
+
autoload :Submodule, 'deck/submodule'
|
3
|
+
autoload :Build, 'deck/build'
|
4
|
+
autoload :Run, 'deck/run'
|
5
|
+
|
6
|
+
class << self
|
7
|
+
def build(name, &block)
|
8
|
+
build = Build.new
|
9
|
+
build.name name
|
10
|
+
build.instance_eval &block
|
11
|
+
build
|
12
|
+
end
|
13
|
+
|
14
|
+
def run
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
metadata
ADDED
@@ -0,0 +1,190 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: dc-deck
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.1.0
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Jeong, Jiung
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
date: 2014-06-13 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: thor
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - ">="
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: 0.19.1
|
20
|
+
- - "~>"
|
21
|
+
- !ruby/object:Gem::Version
|
22
|
+
version: '0.19'
|
23
|
+
type: :runtime
|
24
|
+
prerelease: false
|
25
|
+
version_requirements: !ruby/object:Gem::Requirement
|
26
|
+
requirements:
|
27
|
+
- - ">="
|
28
|
+
- !ruby/object:Gem::Version
|
29
|
+
version: 0.19.1
|
30
|
+
- - "~>"
|
31
|
+
- !ruby/object:Gem::Version
|
32
|
+
version: '0.19'
|
33
|
+
- !ruby/object:Gem::Dependency
|
34
|
+
name: rake
|
35
|
+
requirement: !ruby/object:Gem::Requirement
|
36
|
+
requirements:
|
37
|
+
- - ">="
|
38
|
+
- !ruby/object:Gem::Version
|
39
|
+
version: 10.3.2
|
40
|
+
- - "~>"
|
41
|
+
- !ruby/object:Gem::Version
|
42
|
+
version: '10.3'
|
43
|
+
type: :runtime
|
44
|
+
prerelease: false
|
45
|
+
version_requirements: !ruby/object:Gem::Requirement
|
46
|
+
requirements:
|
47
|
+
- - ">="
|
48
|
+
- !ruby/object:Gem::Version
|
49
|
+
version: 10.3.2
|
50
|
+
- - "~>"
|
51
|
+
- !ruby/object:Gem::Version
|
52
|
+
version: '10.3'
|
53
|
+
- !ruby/object:Gem::Dependency
|
54
|
+
name: wirble
|
55
|
+
requirement: !ruby/object:Gem::Requirement
|
56
|
+
requirements:
|
57
|
+
- - ">="
|
58
|
+
- !ruby/object:Gem::Version
|
59
|
+
version: 0.1.3
|
60
|
+
- - "~>"
|
61
|
+
- !ruby/object:Gem::Version
|
62
|
+
version: '0.1'
|
63
|
+
type: :development
|
64
|
+
prerelease: false
|
65
|
+
version_requirements: !ruby/object:Gem::Requirement
|
66
|
+
requirements:
|
67
|
+
- - ">="
|
68
|
+
- !ruby/object:Gem::Version
|
69
|
+
version: 0.1.3
|
70
|
+
- - "~>"
|
71
|
+
- !ruby/object:Gem::Version
|
72
|
+
version: '0.1'
|
73
|
+
- !ruby/object:Gem::Dependency
|
74
|
+
name: bundler
|
75
|
+
requirement: !ruby/object:Gem::Requirement
|
76
|
+
requirements:
|
77
|
+
- - ">="
|
78
|
+
- !ruby/object:Gem::Version
|
79
|
+
version: 1.5.3
|
80
|
+
- - "~>"
|
81
|
+
- !ruby/object:Gem::Version
|
82
|
+
version: '1.5'
|
83
|
+
type: :development
|
84
|
+
prerelease: false
|
85
|
+
version_requirements: !ruby/object:Gem::Requirement
|
86
|
+
requirements:
|
87
|
+
- - ">="
|
88
|
+
- !ruby/object:Gem::Version
|
89
|
+
version: 1.5.3
|
90
|
+
- - "~>"
|
91
|
+
- !ruby/object:Gem::Version
|
92
|
+
version: '1.5'
|
93
|
+
- !ruby/object:Gem::Dependency
|
94
|
+
name: pry
|
95
|
+
requirement: !ruby/object:Gem::Requirement
|
96
|
+
requirements:
|
97
|
+
- - ">="
|
98
|
+
- !ruby/object:Gem::Version
|
99
|
+
version: 0.9.12
|
100
|
+
- - "~>"
|
101
|
+
- !ruby/object:Gem::Version
|
102
|
+
version: '0.9'
|
103
|
+
type: :development
|
104
|
+
prerelease: false
|
105
|
+
version_requirements: !ruby/object:Gem::Requirement
|
106
|
+
requirements:
|
107
|
+
- - ">="
|
108
|
+
- !ruby/object:Gem::Version
|
109
|
+
version: 0.9.12
|
110
|
+
- - "~>"
|
111
|
+
- !ruby/object:Gem::Version
|
112
|
+
version: '0.9'
|
113
|
+
- !ruby/object:Gem::Dependency
|
114
|
+
name: yard
|
115
|
+
requirement: !ruby/object:Gem::Requirement
|
116
|
+
requirements:
|
117
|
+
- - ">="
|
118
|
+
- !ruby/object:Gem::Version
|
119
|
+
version: 0.8.7
|
120
|
+
- - "~>"
|
121
|
+
- !ruby/object:Gem::Version
|
122
|
+
version: '0.8'
|
123
|
+
type: :development
|
124
|
+
prerelease: false
|
125
|
+
version_requirements: !ruby/object:Gem::Requirement
|
126
|
+
requirements:
|
127
|
+
- - ">="
|
128
|
+
- !ruby/object:Gem::Version
|
129
|
+
version: 0.8.7
|
130
|
+
- - "~>"
|
131
|
+
- !ruby/object:Gem::Version
|
132
|
+
version: '0.8'
|
133
|
+
- !ruby/object:Gem::Dependency
|
134
|
+
name: rspec
|
135
|
+
requirement: !ruby/object:Gem::Requirement
|
136
|
+
requirements:
|
137
|
+
- - "~>"
|
138
|
+
- !ruby/object:Gem::Version
|
139
|
+
version: '2.99'
|
140
|
+
type: :development
|
141
|
+
prerelease: false
|
142
|
+
version_requirements: !ruby/object:Gem::Requirement
|
143
|
+
requirements:
|
144
|
+
- - "~>"
|
145
|
+
- !ruby/object:Gem::Version
|
146
|
+
version: '2.99'
|
147
|
+
description: Docker CLI helper
|
148
|
+
email:
|
149
|
+
- ethernuiel@gmail.com
|
150
|
+
executables: []
|
151
|
+
extensions: []
|
152
|
+
extra_rdoc_files: []
|
153
|
+
files:
|
154
|
+
- lib/deck.rb
|
155
|
+
- lib/deck/build.rb
|
156
|
+
- lib/deck/build/archive.rb
|
157
|
+
- lib/deck/build/cmd.rb
|
158
|
+
- lib/deck/build/expose.rb
|
159
|
+
- lib/deck/build/from.rb
|
160
|
+
- lib/deck/build/name.rb
|
161
|
+
- lib/deck/build/repository.rb
|
162
|
+
- lib/deck/build/start.rb
|
163
|
+
- lib/deck/build/work_dir.rb
|
164
|
+
- lib/deck/run.rb
|
165
|
+
- lib/deck/submodule.rb
|
166
|
+
homepage:
|
167
|
+
licenses:
|
168
|
+
- MIT
|
169
|
+
metadata: {}
|
170
|
+
post_install_message:
|
171
|
+
rdoc_options: []
|
172
|
+
require_paths:
|
173
|
+
- lib
|
174
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
175
|
+
requirements:
|
176
|
+
- - ">="
|
177
|
+
- !ruby/object:Gem::Version
|
178
|
+
version: '0'
|
179
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
180
|
+
requirements:
|
181
|
+
- - ">="
|
182
|
+
- !ruby/object:Gem::Version
|
183
|
+
version: '0'
|
184
|
+
requirements: []
|
185
|
+
rubyforge_project:
|
186
|
+
rubygems_version: 2.2.2
|
187
|
+
signing_key:
|
188
|
+
specification_version: 4
|
189
|
+
summary: Docker Command line helper
|
190
|
+
test_files: []
|