qb 0.1.38 → 0.1.39

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: b3db6c782539a18c0595a06811de825a145c6554
4
- data.tar.gz: 9b0f932cbf62a32649e8742fd7e1d273fbda591e
3
+ metadata.gz: 6207437cc02ce11da7b368a69409b8c8e6db027f
4
+ data.tar.gz: 7883329101be0289c09981a39bec698ff8fbf89a
5
5
  SHA512:
6
- metadata.gz: 005c10da52d51cf20e1624d59622471944f3358b5f3f747e2e471ce4f598c90ee3aba9f2039e0997aca4857b3273c311759f9676f71493127ea3e2754562cde4
7
- data.tar.gz: e4c764c6a9cbed12327362e497c608174f2e6c28e88b5ccb52054214c7b18813564b4fb6a1800e709c9205ea5cb976312ca49ecf7fc5e5152c01e7c1f13842e1
6
+ metadata.gz: 9407784735ecbc1fc00c6b205710981b3b8aceb36bb7dd0fef9a0545ed138bd1d5cc9e6f2e1f598a57aecbca39151e8cd44b67a9a9cb0c2017c5a3ea9251874d
7
+ data.tar.gz: a361762772045fe1ea6e39430adb5bee64ef7717243655e0539b5a5a690e982db27e3487cd5dbb0af2bb31a16c81e1524f5b395ecc7e73927c055220ef8442fe
@@ -0,0 +1,2 @@
1
+ ---
2
+ # defaults file for stream
@@ -0,0 +1,7 @@
1
+ ---
2
+ # meta file for stream
3
+
4
+ allow_duplicates: yes
5
+
6
+ dependencies: []
7
+ # - role: qb.stream
@@ -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
@@ -0,0 +1,4 @@
1
+ ---
2
+ # tasks file for stream
3
+ - stream:
4
+ cmd: ping nrser.com
@@ -6,10 +6,14 @@
6
6
 
7
7
  pre_tasks:
8
8
  - name: load dev_setup facts
9
+ tags:
10
+ - always
9
11
  dev_setup_facts:
10
12
 
11
13
  roles:
12
14
  - role: nrser.dev_setup
15
+ tags:
16
+ - dev-setup
13
17
  # repos that are co-developed
14
18
  dev_setup_repos:
15
19
  - owner: nrser
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
@@ -32,7 +32,7 @@ module QB
32
32
  end
33
33
 
34
34
  # $stderr.puts("DEBUG " + format(msg, values))
35
- $stderr.puts YAML.dump(dumpObj)
35
+ $stderr.puts dumpObj.pretty_inspect
36
36
  end
37
37
 
38
38
  def self.get_default_dir role, cwd, options
@@ -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
- '--VERBOSE[=LEVEL]',
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.to_i
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
@@ -136,9 +136,9 @@ module QB
136
136
  return namespaceless_prefix_matches
137
137
  end
138
138
 
139
- # see if we word match any names
139
+ # see if we word match any relative paths
140
140
  name_word_matches = available.select {|role|
141
- QB::Util.words_start_with? role.name, input
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
 
@@ -1,7 +1,7 @@
1
1
  module QB
2
2
  GEM_NAME = 'qb'
3
3
 
4
- VERSION = "0.1.38"
4
+ VERSION = "0.1.39"
5
5
 
6
6
  def self.gemspec
7
7
  Gem.loaded_specs[GEM_NAME]
@@ -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
+
@@ -1,3 +1,4 @@
1
1
  ---
2
2
  qb.qb_role:
3
+ defaults: true
3
4
  templates: true
@@ -0,0 +1,4 @@
1
+ ---
2
+ # defaults file for qb.qb_role
3
+ qb_role_dest: "{{ qb_dir }}"
4
+ qb_role_modules: []
@@ -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
@@ -10,4 +10,10 @@
10
10
  template:
11
11
  src: qb.yml.j2
12
12
  dest: "{{ dir }}/meta/qb.yml"
13
- force: false
13
+ force: false
14
+
15
+ - include: module.yml
16
+ with_items: "{{ qb_role_modules }}"
17
+ loop_control:
18
+ loop_var: qb_role_module
19
+
@@ -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: "{{ dir | basename }}"
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
@@ -67,6 +67,11 @@ vars:
67
67
  description: include README.md
68
68
  short: r
69
69
 
70
+ - name: library
71
+ type: boolean
72
+ description: create library directory.
73
+ short: l
74
+
70
75
  - name: project
71
76
  type: boolean
72
77
  description: create a project repo for this role
@@ -5,14 +5,14 @@
5
5
 
6
6
  - name: create defaults directory
7
7
  file:
8
- path: "{{ dir }}/defaults"
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: "{{ dir }}/defaults/main.yml"
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: "{{ dir }}/files"
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: "{{ dir }}/files/.gitkeep"
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: "{{ dir }}/handlers"
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: "{{ dir }}/handlers/main.yml"
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: "{{ dir }}/meta"
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: "{{ dir }}/meta/main.yml"
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: "{{ dir }}/tasks"
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: "{{ dir }}/tasks/main.yml"
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: "{{ dir }}/templates"
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: "{{ dir }}/templates/.gitkeep"
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: "{{ dir }}/vars"
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: "{{ dir }}/vars/main.yml"
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: "{{ dir }}/README.md"
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.38
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-06 00:00:00.000000000 Z
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