lux 0.6 → 0.7
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 +4 -4
- data/README.md +1 -1
- data/bin/lux +3 -4
- data/lib/lux.rb +21 -19
- data/lib/lux/version.rb +1 -1
- data/lux.gemspec +4 -4
- metadata +16 -16
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 3eaee859f2e47a11dd2f1561c33a655478b89b76
|
4
|
+
data.tar.gz: 8bfdb4795d60647e9711c3823d6259f14f5ac438
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: cdfabbacc607ea2d2a80572d2824f1d95e7ef037b9b3cc8dccecb2a21e6ecbbbd6861e115eb9b1c7f2c2baab9afe39fa4ed0cc9fe3abcf95cbefb120854052be
|
7
|
+
data.tar.gz: bb8cb85f41a41a65ab4eb03a827c4b3f61e0d3247dce0da7c87911c4e25afd64ae02a161df4fbd1ee13587ebc437e15b7ffe5ce200d613b5c4a1b2e47733ef18
|
data/README.md
CHANGED
@@ -92,7 +92,7 @@ end
|
|
92
92
|
# Note how the task name does not include the tag
|
93
93
|
desc "Run Tools"
|
94
94
|
task :runt => 'quay.io/rasputin/tools' do
|
95
|
-
sh "docker run -it quay.io/
|
95
|
+
sh "docker run -it quay.io/rasputin/tools:1.0 /bin/bash"
|
96
96
|
end
|
97
97
|
```
|
98
98
|
|
data/bin/lux
CHANGED
data/lib/lux.rb
CHANGED
@@ -53,12 +53,12 @@ class Lux::App < Thor
|
|
53
53
|
end
|
54
54
|
end
|
55
55
|
|
56
|
-
desc "start", "Run a Docker
|
57
|
-
method_option :image, type: :string, aliases: '-i', default: 'base', desc: 'Docker image'
|
56
|
+
desc "start IMAGE", "Run a Docker image with user/home mapping"
|
58
57
|
method_option :env, type: :string, aliases: '-e', desc: 'Path to environment file'
|
59
58
|
method_option :name, type: :string, aliases: '-n', default: '<autogenerated>', desc: 'Docker container name'
|
60
|
-
def start
|
61
|
-
image = findimage
|
59
|
+
def start(image)
|
60
|
+
image = findimage image
|
61
|
+
raise "no image" if image.empty?
|
62
62
|
puts "Starting #{image} container..."
|
63
63
|
me, setup_cmd = user_setup_cmd()
|
64
64
|
args = ["-v #{ENV['HOME']}:#{ENV['HOME']}"]
|
@@ -76,11 +76,10 @@ class Lux::App < Thor
|
|
76
76
|
XPC_SERVICE_NAME XPC_FLAGS __CF_USER_TEXT_ENCODING TERM_PROGRAM TERM_PROGRAM_VERSION TERM_SESSION_ID
|
77
77
|
}
|
78
78
|
|
79
|
-
desc "exec COMMAND", "Run a command inside a Docker container"
|
80
|
-
method_option :image, type: :string, aliases: '-i', default: 'base', desc: 'Docker image'
|
79
|
+
desc "exec IMAGE COMMAND", "Run a command inside a Docker container"
|
81
80
|
method_option :env, type: :string, aliases: '-e', desc: 'Path to environment file'
|
82
|
-
def exec(*command)
|
83
|
-
image = findimage
|
81
|
+
def exec(image, *command)
|
82
|
+
image = findimage image
|
84
83
|
me, setup_cmd = user_setup_cmd
|
85
84
|
die "You must be within your home directory!" unless relwd = Pathname.pwd.to_s.gsub!(/^#{ENV['HOME']}/,'~')
|
86
85
|
command.map!{|m| m.start_with?('/') ? Pathname.new(m).relative_path_from(Pathname.pwd) : m }
|
@@ -192,19 +191,22 @@ class Lux::App < Thor
|
|
192
191
|
# Get the current list of images and make a guess at which one it is...
|
193
192
|
#
|
194
193
|
def findimage image
|
195
|
-
|
196
|
-
|
197
|
-
|
198
|
-
if
|
199
|
-
|
200
|
-
|
201
|
-
|
202
|
-
|
203
|
-
|
194
|
+
local_images = `docker images`.strip.split("\n")[1..-1].map{|l| l.gsub!(/^(\S+)\s+(\S+).*/,'\1:\2')}.sort
|
195
|
+
matching_images = local_images.select{|l| l.include? image }
|
196
|
+
if matching_images.size > 0
|
197
|
+
if image.count(':') == 0 and image.count('/') > 0
|
198
|
+
matching_image = matching_images.select{|l| l.end_with? ':latest' }.first
|
199
|
+
end
|
200
|
+
unless matching_image
|
201
|
+
matching_image = HighLine.choose do |menu|
|
202
|
+
menu.header = 'List of matching (local) images'
|
203
|
+
menu.choices(*matching_images)
|
204
|
+
menu.choice('None of the above') { nil }
|
204
205
|
end
|
205
|
-
|
206
|
-
die "No image found matching: #{image}"
|
206
|
+
exit 2 unless matching_image
|
207
207
|
end
|
208
|
+
else
|
209
|
+
matching_image = image
|
208
210
|
end
|
209
211
|
return matching_image
|
210
212
|
end
|
data/lib/lux/version.rb
CHANGED
data/lux.gemspec
CHANGED
@@ -20,9 +20,9 @@ Gem::Specification.new do |spec|
|
|
20
20
|
|
21
21
|
spec.required_ruby_version = ">=2.0.0"
|
22
22
|
|
23
|
-
spec.add_runtime_dependency "thor"
|
24
|
-
spec.add_runtime_dependency "highline"
|
25
|
-
spec.add_runtime_dependency "
|
23
|
+
spec.add_runtime_dependency "thor", "~> 0.19"
|
24
|
+
spec.add_runtime_dependency "highline", "~> 1.7"
|
25
|
+
spec.add_runtime_dependency "rake", "~> 10.0"
|
26
26
|
|
27
|
-
spec.add_development_dependency "
|
27
|
+
spec.add_development_dependency "bundler", "~> 1.9"
|
28
28
|
end
|
metadata
CHANGED
@@ -1,71 +1,71 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: lux
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: '0.
|
4
|
+
version: '0.7'
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Nick Townsend
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-07-
|
11
|
+
date: 2015-07-31 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: thor
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
|
-
- - "
|
17
|
+
- - "~>"
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: '0'
|
19
|
+
version: '0.19'
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
|
-
- - "
|
24
|
+
- - "~>"
|
25
25
|
- !ruby/object:Gem::Version
|
26
|
-
version: '0'
|
26
|
+
version: '0.19'
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: highline
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
|
-
- - "
|
31
|
+
- - "~>"
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version: '
|
33
|
+
version: '1.7'
|
34
34
|
type: :runtime
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
|
-
- - "
|
38
|
+
- - "~>"
|
39
39
|
- !ruby/object:Gem::Version
|
40
|
-
version: '
|
40
|
+
version: '1.7'
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
|
-
name:
|
42
|
+
name: rake
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
44
44
|
requirements:
|
45
45
|
- - "~>"
|
46
46
|
- !ruby/object:Gem::Version
|
47
|
-
version: '
|
47
|
+
version: '10.0'
|
48
48
|
type: :runtime
|
49
49
|
prerelease: false
|
50
50
|
version_requirements: !ruby/object:Gem::Requirement
|
51
51
|
requirements:
|
52
52
|
- - "~>"
|
53
53
|
- !ruby/object:Gem::Version
|
54
|
-
version: '
|
54
|
+
version: '10.0'
|
55
55
|
- !ruby/object:Gem::Dependency
|
56
|
-
name:
|
56
|
+
name: bundler
|
57
57
|
requirement: !ruby/object:Gem::Requirement
|
58
58
|
requirements:
|
59
59
|
- - "~>"
|
60
60
|
- !ruby/object:Gem::Version
|
61
|
-
version: '
|
61
|
+
version: '1.9'
|
62
62
|
type: :development
|
63
63
|
prerelease: false
|
64
64
|
version_requirements: !ruby/object:Gem::Requirement
|
65
65
|
requirements:
|
66
66
|
- - "~>"
|
67
67
|
- !ruby/object:Gem::Version
|
68
|
-
version: '
|
68
|
+
version: '1.9'
|
69
69
|
description:
|
70
70
|
email:
|
71
71
|
- nick.townsend@mac.com
|