docker-env 1.0.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/.gitignore +1 -0
- data/Gemfile +2 -0
- data/Gemfile.lock +36 -0
- data/README.md +39 -0
- data/Rakefile +4 -0
- data/VERSION +1 -0
- data/bin/docker-env +134 -0
- data/docker-env.gemspec +22 -0
- metadata +123 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: f80475bc0268796101ce3daa47d31f65e1683f53
|
4
|
+
data.tar.gz: a3e6df30b2c4c5b41aef432d7d5cda80fa8b260a
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: a9246fd45fca6f9e45b82b7a076347d8be2fb59ed30e12a06824615f77e1f01528ea9c27f9fc0aac9079dceaac4842ee8b8a8355bc15ee69574ece2d5047fb62
|
7
|
+
data.tar.gz: 290642b66307a88bf883da5bbfdffe43961dc0aa89d5ce0170c2ff0e6be6f40854890f20df7ce5d3193afe05c76c12d3d9c290e31d4e6c4f6489d4166a0db44f
|
data/.gitignore
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
/pkg
|
data/Gemfile
ADDED
data/Gemfile.lock
ADDED
@@ -0,0 +1,36 @@
|
|
1
|
+
PATH
|
2
|
+
remote: .
|
3
|
+
specs:
|
4
|
+
docker-env (0)
|
5
|
+
gli (= 2.14.0)
|
6
|
+
version
|
7
|
+
|
8
|
+
GEM
|
9
|
+
remote: https://rubygems.org/
|
10
|
+
specs:
|
11
|
+
byebug (9.0.6)
|
12
|
+
coderay (1.1.1)
|
13
|
+
gli (2.14.0)
|
14
|
+
method_source (0.8.2)
|
15
|
+
pry (0.10.4)
|
16
|
+
coderay (~> 1.1.0)
|
17
|
+
method_source (~> 0.8.1)
|
18
|
+
slop (~> 3.4)
|
19
|
+
pry-byebug (3.4.1)
|
20
|
+
byebug (~> 9.0)
|
21
|
+
pry (~> 0.10)
|
22
|
+
rake (11.3.0)
|
23
|
+
slop (3.6.0)
|
24
|
+
version (1.0.0)
|
25
|
+
|
26
|
+
PLATFORMS
|
27
|
+
ruby
|
28
|
+
|
29
|
+
DEPENDENCIES
|
30
|
+
docker-env!
|
31
|
+
pry
|
32
|
+
pry-byebug
|
33
|
+
rake
|
34
|
+
|
35
|
+
BUNDLED WITH
|
36
|
+
1.13.6
|
data/README.md
ADDED
@@ -0,0 +1,39 @@
|
|
1
|
+
= Name
|
2
|
+
|
3
|
+
`docker-env` - Manage docker for mac qcow images
|
4
|
+
|
5
|
+
= SYNOPSIS
|
6
|
+
|
7
|
+
``` sh
|
8
|
+
docker-env [global options] command [command options] [arguments...]
|
9
|
+
```
|
10
|
+
|
11
|
+
= VERSION
|
12
|
+
0.1.0
|
13
|
+
|
14
|
+
= GLOBAL OPTIONS
|
15
|
+
|
16
|
+
--help - Show this message
|
17
|
+
-v, --[no-]verbose - be more verbose
|
18
|
+
--version - Display the program version
|
19
|
+
|
20
|
+
= COMMANDS
|
21
|
+
|
22
|
+
current - Show current image
|
23
|
+
help - Shows a list of commands or help for one command
|
24
|
+
init - setup by moving Docker.qcow2 to "image_name" and linking back
|
25
|
+
list, ls - list available qcow images (.../Docker.qcow2.{name})
|
26
|
+
new - create new qcow image
|
27
|
+
rm - Delete "image"
|
28
|
+
use - Link to "image""
|
29
|
+
|
30
|
+
= NOTES ON `new`
|
31
|
+
|
32
|
+
`new` removes the current link so that the next time docker starts, it will
|
33
|
+
create a new empty image file. The (slightly long) steps to follow:
|
34
|
+
|
35
|
+
1. Stop Docker.app
|
36
|
+
2. Run this command (`docker-env new`)
|
37
|
+
3. Restart Docker.app
|
38
|
+
4. Stop Docker.app
|
39
|
+
5. Run `docker-env init {name}` to name the new image and create the symlink
|
data/Rakefile
ADDED
data/VERSION
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
1.0.0
|
data/bin/docker-env
ADDED
@@ -0,0 +1,134 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
require 'gli'
|
3
|
+
require 'version'
|
4
|
+
|
5
|
+
include GLI::App
|
6
|
+
|
7
|
+
DIR = File.expand_path(
|
8
|
+
'~/Library/Containers/com.docker.docker/Data/com.docker.driver.amd64-linux'
|
9
|
+
).freeze
|
10
|
+
NAME = 'Docker.qcow2'.freeze
|
11
|
+
SYMLINK = "#{DIR}/#{NAME}".freeze
|
12
|
+
|
13
|
+
program_desc 'Manage docker for mac qcow images'
|
14
|
+
version Version.current(File.dirname(__FILE__))
|
15
|
+
|
16
|
+
subcommand_option_handling :normal
|
17
|
+
arguments :strict
|
18
|
+
wrap_help_text :verbatim
|
19
|
+
|
20
|
+
switch [:v, :verbose], desc: 'be more verbose'
|
21
|
+
|
22
|
+
def current(options)
|
23
|
+
f = File.readlink(SYMLINK)
|
24
|
+
options[:verbose] ? f : f.split('.').last
|
25
|
+
end
|
26
|
+
|
27
|
+
def running?
|
28
|
+
if `ps ax` =~ %r[/[D]ocker.app]
|
29
|
+
$stderr.puts "Please quit Docker.app before using this script!"
|
30
|
+
exit 1
|
31
|
+
end
|
32
|
+
end
|
33
|
+
|
34
|
+
desc 'setup by moving Docker.qcow2 to "image_name" and linking back'
|
35
|
+
arg 'image_name'
|
36
|
+
command :init do |c|
|
37
|
+
c.action do |global_options,options,args|
|
38
|
+
running?
|
39
|
+
if File.symlink?(SYMLINK)
|
40
|
+
$stderr.puts "Already setup. Current is: #{current(global_options)}"
|
41
|
+
exit 1
|
42
|
+
end
|
43
|
+
|
44
|
+
file = "#{SYMLINK}.#{args[0]}"
|
45
|
+
File.rename(SYMLINK, file)
|
46
|
+
File.symlink(file, SYMLINK)
|
47
|
+
|
48
|
+
puts "Current is now: " + current(global_options)
|
49
|
+
end
|
50
|
+
end
|
51
|
+
|
52
|
+
desc 'list available qcow images (.../Docker.qcow2.{name})'
|
53
|
+
command [:list, :ls] do |c|
|
54
|
+
c.action do |global_options,options,args|
|
55
|
+
puts Dir.glob("#{SYMLINK}.*").map { |f|
|
56
|
+
f.split('.').last
|
57
|
+
}
|
58
|
+
end
|
59
|
+
end
|
60
|
+
|
61
|
+
desc 'create new qcow "image"'
|
62
|
+
long_desc <<EOF
|
63
|
+
Removes current link so that the next time docker starts, it will create a
|
64
|
+
new empty image file. The (slightly long) steps to follow:
|
65
|
+
|
66
|
+
1. Stop Docker.app
|
67
|
+
2. Run this command (`docker-env new`)
|
68
|
+
3. Restart Docker.app
|
69
|
+
4. Stop Docker.app
|
70
|
+
5. Run `docker-env init {name}` to name the new image and
|
71
|
+
create the symlink
|
72
|
+
EOF
|
73
|
+
command :new do |c|
|
74
|
+
c.action do |global_options,options,args|
|
75
|
+
running?
|
76
|
+
if File.exist?(SYMLINK) || !File.symlink?(SYMLINK)
|
77
|
+
$stderr.puts "Please use '--force' to force delete current image!"
|
78
|
+
exit 1
|
79
|
+
end
|
80
|
+
|
81
|
+
begin
|
82
|
+
File.unlink(SYMLINK)
|
83
|
+
rescue Errno::ENOENT
|
84
|
+
end
|
85
|
+
help(["new"])
|
86
|
+
end
|
87
|
+
end
|
88
|
+
|
89
|
+
desc 'Delete "image"'
|
90
|
+
arg 'image'
|
91
|
+
command :rm do |c|
|
92
|
+
c.action do |global_options,options,args|
|
93
|
+
file = "#{SYMLINK}.#{args[0]}"
|
94
|
+
unless File.exist?(file)
|
95
|
+
$stderr.puts "Image #{args[0]} doesnt exist!"
|
96
|
+
exit 1
|
97
|
+
end
|
98
|
+
if File.readlink(SYMLINK) == file
|
99
|
+
$stderr.puts "Can't delete currently linked image"
|
100
|
+
exit 1
|
101
|
+
end
|
102
|
+
|
103
|
+
File.unlink(file)
|
104
|
+
end
|
105
|
+
end
|
106
|
+
|
107
|
+
desc 'Link to "image"'
|
108
|
+
arg 'image'
|
109
|
+
command :use do |c|
|
110
|
+
c.action do |global_options,options,args|
|
111
|
+
running?
|
112
|
+
file = "#{SYMLINK}.#{args[0]}"
|
113
|
+
File.exist?(file) or raise "Image #{file} does not exist"
|
114
|
+
|
115
|
+
begin
|
116
|
+
File.unlink(SYMLINK)
|
117
|
+
rescue Errno::ENOENT
|
118
|
+
end
|
119
|
+
File.symlink(file, SYMLINK)
|
120
|
+
end
|
121
|
+
end
|
122
|
+
|
123
|
+
desc 'Show current image'
|
124
|
+
command :current do |c|
|
125
|
+
c.action do |global_options,options,args|
|
126
|
+
puts current(global_options)
|
127
|
+
end
|
128
|
+
end
|
129
|
+
|
130
|
+
on_error do |exception|
|
131
|
+
true
|
132
|
+
end
|
133
|
+
|
134
|
+
exit run(ARGV)
|
data/docker-env.gemspec
ADDED
@@ -0,0 +1,22 @@
|
|
1
|
+
Gem::Specification.new do |s|
|
2
|
+
s.name = 'docker-env'
|
3
|
+
s.version = File.read("VERSION").chomp # file managed by version gem...
|
4
|
+
s.authors = ["Rick Frankel"]
|
5
|
+
s.email = ["docker-env@cybercode.nyc"]
|
6
|
+
s.summary = 'A tool to switch docker for mac environments'
|
7
|
+
s.description = 'docker-env will setup soft-links and switch between docker qcow images.'
|
8
|
+
s.homepage = "https://github.com/cybercode/docker-env"
|
9
|
+
s.licenses = ["MIT"]
|
10
|
+
s.platform = Gem::Platform::RUBY
|
11
|
+
s.files = `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
|
12
|
+
|
13
|
+
s.bindir = 'bin'
|
14
|
+
s.executables << 'docker-env'
|
15
|
+
|
16
|
+
s.add_development_dependency('rake')
|
17
|
+
s.add_development_dependency('pry')
|
18
|
+
s.add_development_dependency('pry-byebug')
|
19
|
+
|
20
|
+
s.add_runtime_dependency('version')
|
21
|
+
s.add_runtime_dependency('gli','2.14.0')
|
22
|
+
end
|
metadata
ADDED
@@ -0,0 +1,123 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: docker-env
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 1.0.0
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Rick Frankel
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
date: 2016-12-24 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: rake
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - ">="
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '0'
|
20
|
+
type: :development
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - ">="
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '0'
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: pry
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - ">="
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '0'
|
34
|
+
type: :development
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - ">="
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '0'
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: pry-byebug
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - ">="
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: '0'
|
48
|
+
type: :development
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - ">="
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '0'
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: version
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - ">="
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '0'
|
62
|
+
type: :runtime
|
63
|
+
prerelease: false
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - ">="
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: '0'
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: gli
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
72
|
+
requirements:
|
73
|
+
- - '='
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
version: 2.14.0
|
76
|
+
type: :runtime
|
77
|
+
prerelease: false
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
79
|
+
requirements:
|
80
|
+
- - '='
|
81
|
+
- !ruby/object:Gem::Version
|
82
|
+
version: 2.14.0
|
83
|
+
description: docker-env will setup soft-links and switch between docker qcow images.
|
84
|
+
email:
|
85
|
+
- docker-env@cybercode.nyc
|
86
|
+
executables:
|
87
|
+
- docker-env
|
88
|
+
extensions: []
|
89
|
+
extra_rdoc_files: []
|
90
|
+
files:
|
91
|
+
- ".gitignore"
|
92
|
+
- Gemfile
|
93
|
+
- Gemfile.lock
|
94
|
+
- README.md
|
95
|
+
- Rakefile
|
96
|
+
- VERSION
|
97
|
+
- bin/docker-env
|
98
|
+
- docker-env.gemspec
|
99
|
+
homepage: https://github.com/cybercode/docker-env
|
100
|
+
licenses:
|
101
|
+
- MIT
|
102
|
+
metadata: {}
|
103
|
+
post_install_message:
|
104
|
+
rdoc_options: []
|
105
|
+
require_paths:
|
106
|
+
- lib
|
107
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
108
|
+
requirements:
|
109
|
+
- - ">="
|
110
|
+
- !ruby/object:Gem::Version
|
111
|
+
version: '0'
|
112
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
113
|
+
requirements:
|
114
|
+
- - ">="
|
115
|
+
- !ruby/object:Gem::Version
|
116
|
+
version: '0'
|
117
|
+
requirements: []
|
118
|
+
rubyforge_project:
|
119
|
+
rubygems_version: 2.6.8
|
120
|
+
signing_key:
|
121
|
+
specification_version: 4
|
122
|
+
summary: A tool to switch docker for mac environments
|
123
|
+
test_files: []
|