qb 0.1.38 → 0.1.39
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/dev/scratch/stream/defaults/main.yml +2 -0
- data/dev/scratch/stream/meta/main.yml +7 -0
- data/dev/scratch/stream/meta/qb.yml +44 -0
- data/dev/scratch/stream/tasks/main.yml +4 -0
- data/dev/setup.yml +4 -0
- data/exe/qb +72 -43
- data/lib/qb.rb +1 -1
- data/lib/qb/options.rb +32 -4
- data/lib/qb/role.rb +2 -2
- data/lib/qb/version.rb +1 -1
- data/library/stream +27 -0
- data/plugins/filter_plugins/string.py +84 -0
- data/roles/qb.qb_role/.qb-options.yml +1 -0
- data/roles/qb.qb_role/defaults/main.yml +4 -0
- data/roles/qb.qb_role/meta/qb.yml +7 -0
- data/roles/qb.qb_role/tasks/main.yml +7 -1
- data/roles/qb.qb_role/tasks/module.yml +15 -0
- data/roles/qb.qb_role/templates/module.rb.j2 +22 -0
- data/roles/qb.role/defaults/main.yml +3 -1
- data/roles/qb.role/meta/qb.yml +5 -0
- data/roles/qb.role/tasks/main.yml +31 -15
- metadata +11 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 6207437cc02ce11da7b368a69409b8c8e6db027f
|
4
|
+
data.tar.gz: 7883329101be0289c09981a39bec698ff8fbf89a
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 9407784735ecbc1fc00c6b205710981b3b8aceb36bb7dd0fef9a0545ed138bd1d5cc9e6f2e1f598a57aecbca39151e8cd44b67a9a9cb0c2017c5a3ea9251874d
|
7
|
+
data.tar.gz: a361762772045fe1ea6e39430adb5bee64ef7717243655e0539b5a5a690e982db27e3487cd5dbb0af2bb31a16c81e1524f5b395ecc7e73927c055220ef8442fe
|
@@ -0,0 +1,44 @@
|
|
1
|
+
---
|
2
|
+
# meta/qb.yml file for stream
|
3
|
+
#
|
4
|
+
# qb settings for this role. see README.md for more info.
|
5
|
+
#
|
6
|
+
|
7
|
+
# description of the role to show in it's help output.
|
8
|
+
description: null
|
9
|
+
|
10
|
+
# prefix for role variables
|
11
|
+
var_prefix: null
|
12
|
+
|
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.
|
31
|
+
default_dir: cwd
|
32
|
+
|
33
|
+
# default user to become for play
|
34
|
+
default_user: null
|
35
|
+
|
36
|
+
# set to false to not save options in .qb-options.yml files
|
37
|
+
save_options: true
|
38
|
+
|
39
|
+
options: []
|
40
|
+
# - name: example
|
41
|
+
# description: an example of a variable.
|
42
|
+
# required: false
|
43
|
+
# type: boolean # boolean (default) | string
|
44
|
+
# short: e
|
data/dev/setup.yml
CHANGED
data/exe/qb
CHANGED
@@ -286,6 +286,77 @@ def main args
|
|
286
286
|
playbook_path = Pathname.new(Dir.getwd) + '.qb-playbook.yml'
|
287
287
|
debug playbook_path: playbook_path.to_s
|
288
288
|
|
289
|
+
tmp_roles_path = QB::ROOT + 'tmp' + 'roles'
|
290
|
+
|
291
|
+
ansible_roles_path = (
|
292
|
+
[
|
293
|
+
role.path.expand_path.dirname,
|
294
|
+
tmp_roles_path
|
295
|
+
] + QB::Role.search_path
|
296
|
+
).join(':')
|
297
|
+
|
298
|
+
ansible_library_path = [
|
299
|
+
ROOT + 'library',
|
300
|
+
].join(':')
|
301
|
+
|
302
|
+
ansible_filter_plugins_path = ROOT.join 'plugins', 'filter_plugins'
|
303
|
+
|
304
|
+
template = []
|
305
|
+
template << "ANSIBLE_ROLES_PATH=<%= roles_path %>"
|
306
|
+
template << "ANSIBLE_LIBRARY=<%= library_path %>"
|
307
|
+
template << "ANSIBLE_FILTER_PLUGINS=<%= filter_plugins_path %>"
|
308
|
+
template << "ansible-playbook"
|
309
|
+
|
310
|
+
if play['hosts'] != ['localhost']
|
311
|
+
template << "-i <%= hosts %>"
|
312
|
+
end
|
313
|
+
|
314
|
+
if qb_options['tags']
|
315
|
+
template << "--tags=<%= tags %>"
|
316
|
+
end
|
317
|
+
|
318
|
+
if qb_options['verbose']
|
319
|
+
template << "-#{ 'v' * qb_options['verbose'] }"
|
320
|
+
end
|
321
|
+
|
322
|
+
template << "<%= playbook_path %>"
|
323
|
+
|
324
|
+
cmd = Cmds.sub template.join(" "), [], {
|
325
|
+
roles_path: ansible_roles_path,
|
326
|
+
library_path: ansible_library_path,
|
327
|
+
playbook_path: playbook_path.to_s,
|
328
|
+
hosts: "#{ play['hosts'].join(',') },",
|
329
|
+
tags: (qb_options['tags'] ? qb_options['tags'].join(',') : nil),
|
330
|
+
filter_plugins_path: ansible_filter_plugins_path.to_s,
|
331
|
+
}
|
332
|
+
|
333
|
+
# print
|
334
|
+
# =====
|
335
|
+
#
|
336
|
+
# print useful stuff for debugging / running outside of qb
|
337
|
+
#
|
338
|
+
|
339
|
+
if qb_options['print'].include? 'options'
|
340
|
+
puts "SET OPTIONS:\n\n#{ YAML.dump set_options }\n\n"
|
341
|
+
end
|
342
|
+
|
343
|
+
if qb_options['print'].include? 'cmd'
|
344
|
+
puts "COMMAND:\n\n#{ cmd }\n\n"
|
345
|
+
end
|
346
|
+
|
347
|
+
if qb_options['print'].include? 'playbook'
|
348
|
+
puts "PLAYBOOK:\n\n#{ YAML.dump playbook }\n\n"
|
349
|
+
end
|
350
|
+
|
351
|
+
# stop here if we're not supposed to run
|
352
|
+
exit 0 if !qb_options['run']
|
353
|
+
|
354
|
+
# run
|
355
|
+
# ===
|
356
|
+
#
|
357
|
+
# stuff below here does stuff
|
358
|
+
#
|
359
|
+
|
289
360
|
playbook_path.open('w') do |f|
|
290
361
|
f.write YAML.dump(playbook)
|
291
362
|
end
|
@@ -312,50 +383,8 @@ def main args
|
|
312
383
|
end
|
313
384
|
end
|
314
385
|
|
315
|
-
tmp_roles_path = QB::ROOT + 'tmp' + 'roles'
|
316
|
-
|
317
|
-
ansible_roles_path = (
|
318
|
-
[
|
319
|
-
role.path.expand_path.dirname,
|
320
|
-
tmp_roles_path
|
321
|
-
] + QB::Role.search_path
|
322
|
-
).join(':')
|
323
|
-
|
324
|
-
ansible_library_path = [
|
325
|
-
ROOT + 'library',
|
326
|
-
].join(':')
|
327
|
-
|
328
386
|
Dir.chdir QB::ROOT do
|
329
|
-
with_clean_env do
|
330
|
-
template = []
|
331
|
-
template << "ANSIBLE_ROLES_PATH=<%= roles_path %>"
|
332
|
-
template << "ANSIBLE_LIBRARY=<%= library_path %>"
|
333
|
-
template << "ansible-playbook"
|
334
|
-
|
335
|
-
if play['hosts'] != ['localhost']
|
336
|
-
template << "-i <%= hosts %>"
|
337
|
-
end
|
338
|
-
|
339
|
-
if qb_options['tags']
|
340
|
-
template << "--tags=<%= tags %>"
|
341
|
-
end
|
342
|
-
|
343
|
-
if qb_options['verbose']
|
344
|
-
template << "-#{ 'v' * qb_options['verbose'] }"
|
345
|
-
end
|
346
|
-
|
347
|
-
template << "<%= playbook_path %>"
|
348
|
-
|
349
|
-
cmd = Cmds.sub template.join(" "), [], {
|
350
|
-
roles_path: ansible_roles_path,
|
351
|
-
library_path: ansible_library_path,
|
352
|
-
playbook_path: playbook_path.to_s,
|
353
|
-
hosts: "#{ play['hosts'].join(',') },",
|
354
|
-
tags: (qb_options['tags'] ? qb_options['tags'].join(',') : nil),
|
355
|
-
}
|
356
|
-
|
357
|
-
puts "COMMAND: #{ cmd }"
|
358
|
-
|
387
|
+
with_clean_env do
|
359
388
|
# boot up stdio services so that ansible modules can stream to our
|
360
389
|
# stdout and stderr to print stuff (including debug lines) in real-time
|
361
390
|
stdio_services = {'out' => $stdout, 'err' => $stderr}.map do |name, dest|
|
data/lib/qb.rb
CHANGED
data/lib/qb/options.rb
CHANGED
@@ -162,6 +162,9 @@ module QB
|
|
162
162
|
qb_options = {
|
163
163
|
'hosts' => ['localhost'],
|
164
164
|
'facts' => true,
|
165
|
+
'print' => ['cmd'],
|
166
|
+
'verbose' => false,
|
167
|
+
'run' => true,
|
165
168
|
}
|
166
169
|
|
167
170
|
if role.meta['default_user']
|
@@ -200,14 +203,24 @@ module QB
|
|
200
203
|
end
|
201
204
|
|
202
205
|
opts.on(
|
203
|
-
'-V',
|
204
|
-
|
205
|
-
"run playbook in verbose mode"
|
206
|
+
'-V[LEVEL]',
|
207
|
+
"run playbook in verbose mode. use like -VVV or -V3."
|
206
208
|
) do |value|
|
209
|
+
# QB.debug "verbose", value: value
|
210
|
+
|
207
211
|
qb_options['verbose'] = if value.nil?
|
208
212
|
1
|
209
213
|
else
|
210
|
-
value
|
214
|
+
case value
|
215
|
+
when '0'
|
216
|
+
false
|
217
|
+
when /^[1-4]$/
|
218
|
+
value.to_i
|
219
|
+
when /^[V]{1,3}$/i
|
220
|
+
value.length + 1
|
221
|
+
else
|
222
|
+
raise "bad verbose value: #{ value.inspect }"
|
223
|
+
end
|
211
224
|
end
|
212
225
|
end
|
213
226
|
|
@@ -218,6 +231,21 @@ module QB
|
|
218
231
|
qb_options['facts'] = false
|
219
232
|
end
|
220
233
|
|
234
|
+
opts.on(
|
235
|
+
'--PRINT=FLAGS',
|
236
|
+
Array,
|
237
|
+
"set what to print before running."
|
238
|
+
) do |value|
|
239
|
+
qb_options['print'] = value
|
240
|
+
end
|
241
|
+
|
242
|
+
opts.on(
|
243
|
+
'--NO-RUN',
|
244
|
+
"don't run the playbook (useful to just print stuff)",
|
245
|
+
) do |value|
|
246
|
+
qb_options['run'] = false
|
247
|
+
end
|
248
|
+
|
221
249
|
add opts, role_options, role
|
222
250
|
|
223
251
|
opts.on_tail("-h", "--help", "Show this message") do
|
data/lib/qb/role.rb
CHANGED
@@ -136,9 +136,9 @@ module QB
|
|
136
136
|
return namespaceless_prefix_matches
|
137
137
|
end
|
138
138
|
|
139
|
-
# see if we word match any
|
139
|
+
# see if we word match any relative paths
|
140
140
|
name_word_matches = available.select {|role|
|
141
|
-
QB::Util.words_start_with? role.
|
141
|
+
QB::Util.words_start_with? role.rel_path.to_s, input
|
142
142
|
}
|
143
143
|
return name_word_matches unless name_word_matches.empty?
|
144
144
|
|
data/lib/qb/version.rb
CHANGED
data/library/stream
ADDED
@@ -0,0 +1,27 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
# WANT_JSON
|
3
|
+
|
4
|
+
# init bundler in dev env
|
5
|
+
if ENV['QB_DEV_ENV']
|
6
|
+
ENV.each {|k, v|
|
7
|
+
if k.start_with? 'QB_DEV_ENV_'
|
8
|
+
ENV[k.sub('QB_DEV_ENV_', '')] = v
|
9
|
+
end
|
10
|
+
}
|
11
|
+
require 'bundler/setup'
|
12
|
+
end
|
13
|
+
|
14
|
+
require 'qb'
|
15
|
+
require 'cmds'
|
16
|
+
|
17
|
+
class Stream < QB::AnsibleModule
|
18
|
+
def main
|
19
|
+
Dir.chdir @args['chdir'] if @args['chdir']
|
20
|
+
|
21
|
+
status = Cmds.stream @args['cmd']
|
22
|
+
|
23
|
+
changed!
|
24
|
+
end
|
25
|
+
end
|
26
|
+
|
27
|
+
Stream.new.run
|
@@ -0,0 +1,84 @@
|
|
1
|
+
from __future__ import (absolute_import, division, print_function)
|
2
|
+
__metaclass__ = type
|
3
|
+
|
4
|
+
import sys
|
5
|
+
import re
|
6
|
+
|
7
|
+
from ansible.errors import AnsibleError
|
8
|
+
|
9
|
+
def cap(string):
|
10
|
+
'''just upper-case the first damn letter.
|
11
|
+
|
12
|
+
>>> cap("DoSomething")
|
13
|
+
'DoSomething'
|
14
|
+
|
15
|
+
>>> cap('doSomething')
|
16
|
+
'DoSomething'
|
17
|
+
'''
|
18
|
+
return string[0].upper() + string[1:]
|
19
|
+
|
20
|
+
|
21
|
+
def words(string):
|
22
|
+
'''break a string into words
|
23
|
+
|
24
|
+
>>> words('git_submodule_update')
|
25
|
+
['git', 'submodule', 'update']
|
26
|
+
|
27
|
+
>>> words("qb.DoSomething")
|
28
|
+
['qb', 'DoSomething']
|
29
|
+
'''
|
30
|
+
return re.split('[\W\_]+', string)
|
31
|
+
|
32
|
+
|
33
|
+
def camel_case(string):
|
34
|
+
'''convert a name to camel case.
|
35
|
+
|
36
|
+
>>> camel_case("git_submodule_update")
|
37
|
+
'gitSubmoduleUpdate'
|
38
|
+
|
39
|
+
>>> camel_case("git-submodule-update")
|
40
|
+
'gitSubmoduleUpdate'
|
41
|
+
|
42
|
+
>>> camel_case("qb.do_something")
|
43
|
+
'qbDoSomething'
|
44
|
+
|
45
|
+
>>> camel_case("qb.DoSomething")
|
46
|
+
'qbDoSomething'
|
47
|
+
'''
|
48
|
+
w = words(string)
|
49
|
+
return w[0] + "".join(cap(s) for s in w[1:])
|
50
|
+
|
51
|
+
|
52
|
+
def cap_camel_case(string):
|
53
|
+
'''convert a string to camel case with a leading capital.
|
54
|
+
|
55
|
+
>>> upper_camel_case("git_submodule_update")
|
56
|
+
'GitSubmoduleUpdate'
|
57
|
+
|
58
|
+
>>> upper_camel_case("git-submodule-update")
|
59
|
+
'GitSubmoduleUpdate'
|
60
|
+
|
61
|
+
>>> upper_camel_case("qb.do_something")
|
62
|
+
'QbDoSomething'
|
63
|
+
'''
|
64
|
+
return cap(camel_case(string))
|
65
|
+
|
66
|
+
|
67
|
+
class FilterModule(object):
|
68
|
+
''' some string filters '''
|
69
|
+
|
70
|
+
def filters(self):
|
71
|
+
return {
|
72
|
+
'cap': cap,
|
73
|
+
'words': words,
|
74
|
+
'camel_case': camel_case,
|
75
|
+
'cap_camel_case': cap_camel_case,
|
76
|
+
'class_case': cap_camel_case,
|
77
|
+
}
|
78
|
+
|
79
|
+
|
80
|
+
# testing - call camel_case on first cli arg and print result
|
81
|
+
if __name__ == '__main__':
|
82
|
+
import doctest
|
83
|
+
doctest.testmod()
|
84
|
+
|
@@ -11,5 +11,12 @@ var_prefix: null
|
|
11
11
|
default_dir: null
|
12
12
|
|
13
13
|
options:
|
14
|
+
- name: modules
|
15
|
+
description: >-
|
16
|
+
create ruby module boilerplate(s) in library using QB::AnsibleModule.
|
17
|
+
type: array
|
18
|
+
required: false
|
19
|
+
implies: library
|
20
|
+
|
14
21
|
- include: qb.role
|
15
22
|
as: false
|
@@ -0,0 +1,15 @@
|
|
1
|
+
---
|
2
|
+
- set_fact:
|
3
|
+
qb_role_module_class: "{{ qb_role_module | class_case }}"
|
4
|
+
qb_role_module_path: "{{ qb_role_dest }}/library/{{ qb_role_module }}"
|
5
|
+
|
6
|
+
- name: "create {{ qb_role_module }} module"
|
7
|
+
template:
|
8
|
+
src: module.rb.j2
|
9
|
+
dest: "{{ qb_role_module_path }}"
|
10
|
+
force: "{{ role_force }}"
|
11
|
+
|
12
|
+
- name: "make library/{{ qb_role_module }} executable"
|
13
|
+
file:
|
14
|
+
path: "{{ qb_role_module_path }}"
|
15
|
+
mode: a+x
|
@@ -0,0 +1,22 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
# WANT_JSON
|
3
|
+
|
4
|
+
# init bundler in dev env
|
5
|
+
if ENV['QB_DEV_ENV']
|
6
|
+
ENV.each {|k, v|
|
7
|
+
if k.start_with? 'QB_DEV_ENV_'
|
8
|
+
ENV[k.sub('QB_DEV_ENV_', '')] = v
|
9
|
+
end
|
10
|
+
}
|
11
|
+
require 'bundler/setup'
|
12
|
+
end
|
13
|
+
|
14
|
+
require 'qb'
|
15
|
+
|
16
|
+
class {{ qb_role_module_class }} < QB::AnsibleModule
|
17
|
+
def main
|
18
|
+
nil
|
19
|
+
end
|
20
|
+
end
|
21
|
+
|
22
|
+
{{ qb_role_module_class }}.new.run
|
@@ -1,7 +1,8 @@
|
|
1
1
|
---
|
2
|
+
role_dest: "{{ qb_dir }}"
|
2
3
|
role_force: false
|
3
4
|
# can't be named `role_name` 'cause ansible sets that?
|
4
|
-
role_role_name: "{{
|
5
|
+
role_role_name: "{{ role_dest | basename }}"
|
5
6
|
role_defaults: true
|
6
7
|
role_files: false
|
7
8
|
role_handlers: false
|
@@ -10,6 +11,7 @@ role_tasks: true
|
|
10
11
|
role_templates: false
|
11
12
|
role_vars: false
|
12
13
|
role_readme: false
|
14
|
+
role_library: false
|
13
15
|
|
14
16
|
# galaxy
|
15
17
|
role_galaxy: false
|
data/roles/qb.role/meta/qb.yml
CHANGED
@@ -5,14 +5,14 @@
|
|
5
5
|
|
6
6
|
- name: create defaults directory
|
7
7
|
file:
|
8
|
-
path: "{{
|
8
|
+
path: "{{ role_dest }}/defaults"
|
9
9
|
state: directory
|
10
10
|
when: role_defaults
|
11
11
|
|
12
12
|
- name: create defaults/main.yml
|
13
13
|
template:
|
14
14
|
src: defaults/main.yml.j2
|
15
|
-
dest: "{{
|
15
|
+
dest: "{{ role_dest }}/defaults/main.yml"
|
16
16
|
force: "{{ role_force }}"
|
17
17
|
when: role_defaults
|
18
18
|
|
@@ -21,7 +21,7 @@
|
|
21
21
|
|
22
22
|
- name: create files directory
|
23
23
|
file:
|
24
|
-
path: "{{
|
24
|
+
path: "{{ role_dest }}/files"
|
25
25
|
state: directory
|
26
26
|
when: role_files
|
27
27
|
|
@@ -30,7 +30,7 @@
|
|
30
30
|
- name: create a .gitkeep in the files directory
|
31
31
|
copy:
|
32
32
|
content: ""
|
33
|
-
dest: "{{
|
33
|
+
dest: "{{ role_dest }}/files/.gitkeep"
|
34
34
|
force: "{{ role_force }}"
|
35
35
|
when: role_files
|
36
36
|
|
@@ -39,14 +39,14 @@
|
|
39
39
|
|
40
40
|
- name: create handlers directory
|
41
41
|
file:
|
42
|
-
path: "{{
|
42
|
+
path: "{{ role_dest }}/handlers"
|
43
43
|
state: directory
|
44
44
|
when: role_handlers
|
45
45
|
|
46
46
|
- name: create handlers/main.yml
|
47
47
|
template:
|
48
48
|
src: handlers/main.yml.j2
|
49
|
-
dest: "{{
|
49
|
+
dest: "{{ role_dest }}/handlers/main.yml"
|
50
50
|
force: "{{ role_force }}"
|
51
51
|
when: role_handlers
|
52
52
|
|
@@ -55,14 +55,14 @@
|
|
55
55
|
|
56
56
|
- name: create meta directory
|
57
57
|
file:
|
58
|
-
path: "{{
|
58
|
+
path: "{{ role_dest }}/meta"
|
59
59
|
state: directory
|
60
60
|
when: role_meta
|
61
61
|
|
62
62
|
- name: create meta/main.yml
|
63
63
|
template:
|
64
64
|
src: meta/main.yml.j2
|
65
|
-
dest: "{{
|
65
|
+
dest: "{{ role_dest }}/meta/main.yml"
|
66
66
|
force: "{{ role_force }}"
|
67
67
|
when: role_meta
|
68
68
|
|
@@ -71,14 +71,14 @@
|
|
71
71
|
|
72
72
|
- name: create tasks directory
|
73
73
|
file:
|
74
|
-
path: "{{
|
74
|
+
path: "{{ role_dest }}/tasks"
|
75
75
|
state: directory
|
76
76
|
when: role_tasks
|
77
77
|
|
78
78
|
- name: create tasks/main.yml
|
79
79
|
template:
|
80
80
|
src: tasks/main.yml.j2
|
81
|
-
dest: "{{
|
81
|
+
dest: "{{ role_dest }}/tasks/main.yml"
|
82
82
|
force: "{{ role_force }}"
|
83
83
|
when: role_tasks
|
84
84
|
|
@@ -87,7 +87,7 @@
|
|
87
87
|
|
88
88
|
- name: create templates directory
|
89
89
|
file:
|
90
|
-
path: "{{
|
90
|
+
path: "{{ role_dest }}/templates"
|
91
91
|
state: directory
|
92
92
|
when: role_templates
|
93
93
|
|
@@ -96,7 +96,7 @@
|
|
96
96
|
- name: create a .gitkeep in the templates directory
|
97
97
|
copy:
|
98
98
|
content: ""
|
99
|
-
dest: "{{
|
99
|
+
dest: "{{ role_dest }}/templates/.gitkeep"
|
100
100
|
force: "{{ role_force }}"
|
101
101
|
when: role_templates
|
102
102
|
|
@@ -105,14 +105,14 @@
|
|
105
105
|
|
106
106
|
- name: create vars directory
|
107
107
|
file:
|
108
|
-
path: "{{
|
108
|
+
path: "{{ role_dest }}/vars"
|
109
109
|
state: directory
|
110
110
|
when: role_vars
|
111
111
|
|
112
112
|
- name: create vars/main.yml
|
113
113
|
template:
|
114
114
|
src: vars/main.yml.j2
|
115
|
-
dest: "{{
|
115
|
+
dest: "{{ role_dest }}/vars/main.yml"
|
116
116
|
force: "{{ role_force }}"
|
117
117
|
when: role_vars
|
118
118
|
|
@@ -122,7 +122,23 @@
|
|
122
122
|
- name: create README.md
|
123
123
|
template:
|
124
124
|
src: README.md.j2
|
125
|
-
dest: "{{
|
125
|
+
dest: "{{ role_dest }}/README.md"
|
126
126
|
force: "{{ role_force }}"
|
127
127
|
when: role_readme
|
128
|
+
|
129
|
+
# library
|
130
|
+
# =======
|
131
|
+
|
132
|
+
- name: create library directory
|
133
|
+
file:
|
134
|
+
path: "{{ role_dest }}/library"
|
135
|
+
state: directory
|
136
|
+
when: role_library
|
137
|
+
|
138
|
+
- name: create a .gitkeep in the library directory
|
139
|
+
copy:
|
140
|
+
content: ""
|
141
|
+
dest: "{{ role_dest }}/library/.gitkeep"
|
142
|
+
force: "{{ role_force }}"
|
143
|
+
when: role_library
|
128
144
|
|
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.39
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- nrser
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-12-
|
11
|
+
date: 2016-12-07 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -175,6 +175,10 @@ files:
|
|
175
175
|
- dev/scratch/stdio/meta/main.yml
|
176
176
|
- dev/scratch/stdio/meta/qb.yml
|
177
177
|
- dev/scratch/stdio/tasks/main.yml
|
178
|
+
- dev/scratch/stream/defaults/main.yml
|
179
|
+
- dev/scratch/stream/meta/main.yml
|
180
|
+
- dev/scratch/stream/meta/qb.yml
|
181
|
+
- dev/scratch/stream/tasks/main.yml
|
178
182
|
- dev/setup.yml
|
179
183
|
- exe/qb
|
180
184
|
- lib/qb.rb
|
@@ -187,6 +191,8 @@ files:
|
|
187
191
|
- lib/qb/version.rb
|
188
192
|
- library/git_mkdir.py
|
189
193
|
- library/qb_facts.py
|
194
|
+
- library/stream
|
195
|
+
- plugins/filter_plugins/string.py
|
190
196
|
- qb.gemspec
|
191
197
|
- roles/nrser.blockinfile/CONTRIBUTING.md
|
192
198
|
- roles/nrser.blockinfile/README.md
|
@@ -549,10 +555,13 @@ files:
|
|
549
555
|
- roles/qb.project/templates/bootstrap.yml.j2
|
550
556
|
- roles/qb.project/templates/setup.yml.j2
|
551
557
|
- roles/qb.qb_role/.qb-options.yml
|
558
|
+
- roles/qb.qb_role/defaults/main.yml
|
552
559
|
- roles/qb.qb_role/meta/main.yml
|
553
560
|
- roles/qb.qb_role/meta/qb.yml
|
554
561
|
- roles/qb.qb_role/tasks/main.yml
|
562
|
+
- roles/qb.qb_role/tasks/module.yml
|
555
563
|
- roles/qb.qb_role/templates/.gitkeep
|
564
|
+
- roles/qb.qb_role/templates/module.rb.j2
|
556
565
|
- roles/qb.qb_role/templates/qb.yml.j2
|
557
566
|
- roles/qb.release_gem/defaults/main.yml
|
558
567
|
- roles/qb.release_gem/meta/main.yml
|