qb 0.1.19 → 0.1.20
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/bin/qb +2 -1
- data/exe/qb +31 -24
- data/lib/qb/options.rb +31 -6
- data/lib/qb/role.rb +20 -0
- data/lib/qb/version.rb +1 -1
- data/library/qb_facts.py +2 -4
- data/roles/qb.qb_role/templates/qb.yml.j2 +21 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: ca9d3309b203357ca3f60f6dadcc234a6deb6b0e
|
4
|
+
data.tar.gz: ea834af63ce3b9e275c9f51d80d3400db317ca56
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: e77e6ddbca93822961261a701b5054ed523978af86d80bcfff0e940f108ff4bfdf189fc17450eefca050c6d5219c514cb9db1e911f10394f5afac3442cce07b4
|
7
|
+
data.tar.gz: 2e25ae51fc342efaf90179b2baae6c0289888e100e2dc9042b4ddb0e46bdc3f9ab4dbdb27df928dfd1d599065a8a615fc38155fe90562d675ec1c6207c207eb7
|
data/bin/qb
CHANGED
@@ -2,11 +2,12 @@
|
|
2
2
|
# stub instead of `bundle exec qb ...`
|
3
3
|
|
4
4
|
# so you know you're using the local repo version (vs an installed gem)...
|
5
|
-
puts "*** LOADING REPO VERSION
|
5
|
+
puts "*** LOADING REPO VERSION ***"
|
6
6
|
|
7
7
|
root = File.dirname(File.realpath(File.join(__FILE__, '..')))
|
8
8
|
|
9
9
|
puts "source: #{ root }"
|
10
|
+
puts
|
10
11
|
|
11
12
|
Dir.chdir root do
|
12
13
|
require 'bundler/setup'
|
data/exe/qb
CHANGED
@@ -28,7 +28,7 @@ TMP_DIR = ROOT + 'tmp'
|
|
28
28
|
# format a debug message with optional key / values to print
|
29
29
|
#
|
30
30
|
# @param msg [String] message to print.
|
31
|
-
# @param dump [Hash] optional hash of keys and
|
31
|
+
# @param dump [Hash] optional hash of keys and values to dump.
|
32
32
|
def format msg, dump = {}
|
33
33
|
unless dump.empty?
|
34
34
|
msg += "\n" + dump.map {|k, v| " #{ k }: #{ v.inspect }" }.join("\n")
|
@@ -103,9 +103,10 @@ def main args
|
|
103
103
|
exit 1
|
104
104
|
end
|
105
105
|
|
106
|
-
options = QB::Options.parse! role, args
|
106
|
+
options, qb_options = QB::Options.parse! role, args
|
107
107
|
|
108
108
|
debug "options set on cli", options.select {|k, o| !o.value.nil?}
|
109
|
+
debug "qb options", qb_options
|
109
110
|
|
110
111
|
cwd = Dir.getwd
|
111
112
|
|
@@ -193,29 +194,35 @@ def main args
|
|
193
194
|
playbook_role[option.var_name] = option.value
|
194
195
|
end
|
195
196
|
|
196
|
-
|
197
|
-
|
198
|
-
|
199
|
-
|
200
|
-
|
201
|
-
|
202
|
-
|
203
|
-
|
204
|
-
|
205
|
-
},
|
197
|
+
play =
|
198
|
+
{
|
199
|
+
'hosts' => qb_options['hosts'],
|
200
|
+
'vars' => playbook_vars,
|
201
|
+
'pre_tasks' => [
|
202
|
+
# need ansible 2.1.2.0 at least to run
|
203
|
+
{
|
204
|
+
'assert' => {
|
205
|
+
'that' => "'ansible 2.1.2' in lookup('pipe', 'ansible --version')",
|
206
206
|
},
|
207
|
-
|
208
|
-
|
209
|
-
|
210
|
-
|
211
|
-
}
|
212
|
-
|
213
|
-
|
214
|
-
|
215
|
-
|
216
|
-
|
217
|
-
|
218
|
-
|
207
|
+
},
|
208
|
+
{
|
209
|
+
'qb_facts' => {
|
210
|
+
'qb_dir' => dir,
|
211
|
+
}
|
212
|
+
},
|
213
|
+
],
|
214
|
+
'roles' => [
|
215
|
+
'nrser.blockinfile',
|
216
|
+
playbook_role
|
217
|
+
],
|
218
|
+
}
|
219
|
+
|
220
|
+
if qb_options['user']
|
221
|
+
play['become'] = true
|
222
|
+
play['become_user'] = qb_options['user']
|
223
|
+
end
|
224
|
+
|
225
|
+
playbook = [play]
|
219
226
|
|
220
227
|
debug "playbook", playbook
|
221
228
|
|
data/lib/qb/options.rb
CHANGED
@@ -243,15 +243,40 @@ module QB
|
|
243
243
|
end # add
|
244
244
|
|
245
245
|
def self.parse! role, args
|
246
|
-
|
246
|
+
role_options = {}
|
247
|
+
|
248
|
+
qb_options = {
|
249
|
+
'hosts' => ['localhost'],
|
250
|
+
}
|
251
|
+
|
252
|
+
if role.meta['default_user']
|
253
|
+
qb_options['user'] = role.meta['default_user']
|
254
|
+
end
|
247
255
|
|
248
256
|
opt_parser = OptionParser.new do |opts|
|
249
|
-
opts.banner =
|
257
|
+
opts.banner = role.banner
|
258
|
+
|
259
|
+
opts.on(
|
260
|
+
'-H',
|
261
|
+
'---hosts=HOSTS',
|
262
|
+
Array,
|
263
|
+
"set playbook host",
|
264
|
+
"default: localhost"
|
265
|
+
) do |value|
|
266
|
+
qb_options['hosts'] = value
|
267
|
+
end
|
268
|
+
|
269
|
+
opts.on(
|
270
|
+
'-U',
|
271
|
+
'---user=USER',
|
272
|
+
String,
|
273
|
+
"ansible become user for the playbook"
|
274
|
+
) do |value|
|
275
|
+
qb_options['user'] = value
|
276
|
+
end
|
250
277
|
|
251
|
-
add opts,
|
278
|
+
add opts, role_options, role
|
252
279
|
|
253
|
-
# No argument, shows at tail. This will print an options summary.
|
254
|
-
# Try it and see!
|
255
280
|
opts.on_tail("-h", "--help", "Show this message") do
|
256
281
|
puts opts
|
257
282
|
exit
|
@@ -260,7 +285,7 @@ module QB
|
|
260
285
|
|
261
286
|
opt_parser.parse! args
|
262
287
|
|
263
|
-
|
288
|
+
[role_options, qb_options]
|
264
289
|
end # parse!
|
265
290
|
end # Options
|
266
291
|
end # QB
|
data/lib/qb/role.rb
CHANGED
@@ -235,6 +235,26 @@ module QB
|
|
235
235
|
!!meta_or('mkdir', true)
|
236
236
|
end
|
237
237
|
|
238
|
+
# get the CLI banner for the role
|
239
|
+
def banner
|
240
|
+
lines = []
|
241
|
+
|
242
|
+
name_line = "#{ name } role"
|
243
|
+
lines << name_line
|
244
|
+
lines << "=" * name_line.length
|
245
|
+
lines << ''
|
246
|
+
if meta['description']
|
247
|
+
lines << meta['description']
|
248
|
+
lines << ''
|
249
|
+
end
|
250
|
+
lines << 'usage:'
|
251
|
+
lines << " qb #{ name } [OPTIONS] DIRECTORY"
|
252
|
+
lines << ''
|
253
|
+
lines << 'options:'
|
254
|
+
|
255
|
+
lines.join("\n")
|
256
|
+
end
|
257
|
+
|
238
258
|
private
|
239
259
|
|
240
260
|
# get the value at the first found of the keys or the default.
|
data/lib/qb/version.rb
CHANGED
data/library/qb_facts.py
CHANGED
@@ -40,6 +40,8 @@ def main():
|
|
40
40
|
try:
|
41
41
|
value = subprocess.check_output(cmd).rstrip()
|
42
42
|
facts[key] = value
|
43
|
+
# depreciated old name
|
44
|
+
facts[key[3:]] = value
|
43
45
|
except subprocess.CalledProcessError as e:
|
44
46
|
pass
|
45
47
|
|
@@ -59,10 +61,6 @@ def main():
|
|
59
61
|
|
60
62
|
facts['qb_gem_info'] = gem_info
|
61
63
|
|
62
|
-
# depreciated namespaceless names
|
63
|
-
facts['git_user_name'] = facts['qb_git_user_name']
|
64
|
-
facts['git_user_email'] = facts['qb_git_user_email']
|
65
|
-
|
66
64
|
changed = False
|
67
65
|
|
68
66
|
module.exit_json(
|
@@ -4,10 +4,30 @@
|
|
4
4
|
# qb settings for this role. see README.md for more info.
|
5
5
|
#
|
6
6
|
|
7
|
+
# description of the role to show in it's help output.
|
8
|
+
description: null
|
9
|
+
|
7
10
|
# prefix for role variables
|
8
11
|
var_prefix: null
|
9
12
|
|
10
|
-
# how to get a default for `dir` if it's not provided as the
|
13
|
+
# how to get a default for `dir` if it's not provided as the only
|
14
|
+
# positional argument. if a positional argument is provided it will
|
15
|
+
# override the method defined here.
|
16
|
+
#
|
17
|
+
# options:
|
18
|
+
#
|
19
|
+
# - null
|
20
|
+
# - require the value on the command line.
|
21
|
+
# - git_root
|
22
|
+
# - use the git root fof the directory that the `qb` command is invoked
|
23
|
+
# from. useful for 'project-centric' commands so they can be invoked
|
24
|
+
# from anywhere in the repo.
|
25
|
+
# - cwd
|
26
|
+
# - use the directory the `qb` command is invoked form.
|
27
|
+
# - {exe: PATH}
|
28
|
+
# - invoke an execuable, passing a JSON serialization of the options
|
29
|
+
# mapping their CLI names to values. path can be relative to role
|
30
|
+
# directory.
|
11
31
|
default_dir: null
|
12
32
|
|
13
33
|
# set to false to not save options in .qb-options.yml files
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: qb
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.20
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- nrser
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-10-
|
11
|
+
date: 2016-10-26 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|