docker-template 0.19.0 → 0.20.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: e2ab5af00f7a613c19f9dc69c35fa5213e4d8ec1ea8f535a5114f2d9600b14a6
4
- data.tar.gz: 80d15462ac2b38f3a8b01e0c1d45e315f4c5b608af97f17c78a0498af4de9649
3
+ metadata.gz: 9c619f82805d6347fc614a212828d5bcb1b185783171a771c2720c9f277c175a
4
+ data.tar.gz: d1dc93f95b9f840b82e5d4d29017d7b681660a1f3921626d128f140508676c21
5
5
  SHA512:
6
- metadata.gz: c34c91d94b3b341cad25d5be242e8fef2d565b16f1b6f19a72846dfe006e02260c485c9f6f27c55393dfb7c0aa079d9c5f0212f44526b1db1233d8fb2835841a
7
- data.tar.gz: 34c2673aeeb6ab68055417a6c6a53e5d7bef9d85fa86f673d29b89fa898b98326bbc8305817663a06d3ee607f7bf8025e7da5b93d77dcfa727c620b0de2fbe37
6
+ metadata.gz: 10fa2829cfb98fb41a19dfbd92ef71926024c4e0e3bee74d2950823e7cd397e8fcca4728d56e0b1bec89a37b1a2951f573329ebe513646d267c290d5d0e01570
7
+ data.tar.gz: 97c360cb05d1356f81189bc226228fb57d0f16e946f84b886c16b8e6dec78d410253a39289d03a29511ff10e89adbdb3a67bffaa2e786610ee1497d9a77e964a
data/Rakefile CHANGED
@@ -1,130 +1,12 @@
1
1
  # Frozen-string-literal: true
2
- # Copyright: 2015 - 2016 Jordon Bedwell - Apache v2.0 License
2
+ # Copyright: 2017 - 2018 - MIT License
3
+ # Source: https://github.com/envygeeks/devfiles
4
+ # Author: Jordon Bedwell
3
5
  # Encoding: utf-8
4
6
 
5
- $LOAD_PATH.unshift(File.expand_path(
6
- "../lib", __FILE__
7
- ))
8
-
9
- # --
10
-
11
- require "simple/ansi"
12
- require "rspec/core/rake_task"
13
- require "docker/template/cli"
14
- require "open3"
15
-
16
- # --
17
-
18
- task :default => [:spec]
19
- RSpec::Core::RakeTask.new :spec
20
- task :test => :spec
21
-
22
- # --
23
- # TODO: Cleanup and remove this whenever you can.
24
- # --
25
- module CompList
26
- module_function
27
-
28
- # --
29
- # Update the pak file to have all the completions.
30
- # --
31
- def update(data = get_commands, msgp = data.to_msgpack)
32
- pak_file.binwrite(
33
- msgp
34
- )
35
- end
36
-
37
- # --
38
-
39
- def normalize_command(command)
40
- if command.is_a?(Array)
41
- then command.map do |key|
42
- key.tr(
43
- "_", "-"
44
- )
45
- end
46
- else
47
- command.tr(
48
- "_", "-"
49
- )
50
- end
51
- end
52
-
53
- # --
54
- # Provides the base "_reply" for your auto-complete data output.
55
- # --
56
- def base(const, skip = %w(help))
57
- keys = const.all_commands.keys
58
- return "_reply" => normalize_command(keys), "help" => {
59
- "_reply" => normalize_command(keys) - skip
60
- }
61
- end
62
-
63
- # --
64
-
65
- def add_opts(out, const)
66
- const.all_commands.each do |key, val, command = normalize_command(key)|
67
- val.options.map do |_, opt|
68
- out[command] ||= { "_reply" => [] }
69
- ary = out[command][
70
- "_reply"
71
- ]
72
-
73
- if !opt.boolean?
74
- ary << "#{
75
- opt.switch_name
76
- }="
77
-
78
- else
79
- ary << opt.switch_name
80
- ary << "--no-#{opt.switch_name.gsub(
81
- /\A--/, ""
82
- )}"
83
- end
84
-
85
- ary | opt.aliases
86
- end
87
- end
88
-
89
- out
90
- end
91
-
92
- # --
93
- # Recursively pulls out and set's up your commands and opts.
94
- # --
95
- def get_commands(const = Docker::Template::CLI)
96
- out = base(
97
- const
98
- )
99
-
100
- const.subcommands.each do |key, command = normalize_command(key)|
101
- const_list = const.to_namespace.push(command.to_namespace)
102
- out[command] = send(__method__, Thor::Namespace.resolv(
103
- const_list
104
- ))
105
- end
106
-
107
- add_opts(
108
- out, const
109
- )
110
- end
111
-
112
- # --
113
-
114
- def pak_file
115
- Pathutil.new("comp/list.pak").expand_path.tap(
116
- &:touch
117
- )
118
- end
119
- end
120
-
121
- # --
122
-
123
- namespace :update do
124
- desc "Update the completion list."
125
- task "comp-list" do
126
- require "msgpack"
127
- require "docker/template"
128
- CompList.update
129
- end
7
+ task default: [:spec]
8
+ task(:spec) { exec "script/test" }
9
+ task(:test) { exec "script/test" }
10
+ Dir.glob("script/rake.d/*.rake").each do |v|
11
+ load v
130
12
  end
@@ -35,7 +35,7 @@ module Docker
35
35
 
36
36
  def root
37
37
  @root ||= begin
38
- Pathutil.new(Dir.pwd)
38
+ Pathutil.new(Dir.pwd).realpath
39
39
  end
40
40
  end
41
41
 
@@ -78,26 +78,22 @@ module Docker
78
78
  def _require(what)
79
79
  require what
80
80
  if block_given?
81
- yield
81
+ yield true
82
82
  end
83
-
84
83
  rescue LoadError
85
- $stderr.puts "The gem '#{what}' wasn't found."
86
- $stderr.puts "You can install it with `gem install #{what}'"
87
- abort "Hope you install it so you can report back."
84
+ if block_given?
85
+ yield false
86
+ end
88
87
  end
89
88
 
90
89
  # --
91
90
 
92
91
  def tmpdir
93
92
  if ENV["DOCKER_TEMPLATE_TMPDIR"]
94
- # Don't destroy a user created directory.
95
- return Pathutil.new(ENV["DOCKER_TEMPLATE_TMPDIR"]).tap(
96
- &:mkdir_p
97
- )
93
+ dir = Pathutil.new(ENV["DOCKER_TEMPLATE_TMPDIR"])
94
+ .tap(&:mkdir_p)
98
95
  else
99
96
  dir = root.join("tmp")
100
-
101
97
  if !dir.exist?
102
98
  # Make the directory and then throw it out at exit.
103
99
  dir.mkdir_p; ObjectSpace.define_finalizer(dir, proc do
@@ -107,6 +103,8 @@ module Docker
107
103
 
108
104
  dir
109
105
  end
106
+
107
+ dir.realpath
110
108
  end
111
109
  end
112
110
  end
@@ -39,7 +39,9 @@ module Docker
39
39
  # --
40
40
 
41
41
  def changed!
42
- Template._require "rugged" do
42
+ Template._require "rugged" do |loaded|
43
+ return true unless loaded
44
+
43
45
  git = Rugged::Repository.new(Template.root.to_s)
44
46
  dir = Template.root.join(@opts.repos_dir)
45
47
 
@@ -143,10 +143,9 @@ module Docker
143
143
  # --
144
144
 
145
145
  def tmpdir(*args, root: Template.tmpdir)
146
- args.unshift(user, name, tag)
147
- Pathutil.tmpdir(
148
- args, nil, root
149
- )
146
+ args.unshift(user.gsub(/[^A-Za-z0-9_\-]+/, "--"), name, tag)
147
+ out = Pathutil.tmpdir(args, nil, root)
148
+ out.realpath
150
149
  end
151
150
 
152
151
  # --
@@ -4,6 +4,6 @@
4
4
 
5
5
  module Docker
6
6
  module Template
7
- VERSION = "0.19.0"
7
+ VERSION = "0.20.0"
8
8
  end
9
9
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: docker-template
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.19.0
4
+ version: 0.20.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jordon Bedwell
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-12-21 00:00:00.000000000 Z
11
+ date: 2018-11-01 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: thor
@@ -114,20 +114,6 @@ dependencies:
114
114
  - - ">="
115
115
  - !ruby/object:Gem::Version
116
116
  version: '1.8'
117
- - !ruby/object:Gem::Dependency
118
- name: rugged
119
- requirement: !ruby/object:Gem::Requirement
120
- requirements:
121
- - - "~>"
122
- - !ruby/object:Gem::Version
123
- version: 0.25.1
124
- type: :runtime
125
- prerelease: false
126
- version_requirements: !ruby/object:Gem::Requirement
127
- requirements:
128
- - - "~>"
129
- - !ruby/object:Gem::Version
130
- version: 0.25.1
131
117
  description: Build and template awesome Docker images a variety of ways.
132
118
  email:
133
119
  - jordon@envygeeks.io
@@ -187,7 +173,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
187
173
  version: '0'
188
174
  requirements: []
189
175
  rubyforge_project:
190
- rubygems_version: 2.7.3
176
+ rubygems_version: 2.7.7
191
177
  signing_key:
192
178
  specification_version: 4
193
179
  summary: Build and template Docker images a variety of ways.