qb 0.1.53 → 0.1.54
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/exe/qb +19 -20
- data/lib/qb/options.rb +38 -4
- data/lib/qb/options/option.rb +22 -2
- data/lib/qb/role.rb +54 -28
- data/lib/qb/util.rb +25 -0
- data/lib/qb/version.rb +1 -1
- data/library/qb_facts.py +1 -0
- data/plugins/filter_plugins/version.py +28 -2
- data/qb.gemspec +2 -1
- data/roles/qb.gitignore/files/gitignore/C.gitignore +1 -0
- data/roles/qb.gitignore/files/gitignore/Dart.gitignore +3 -24
- data/roles/qb.gitignore/files/gitignore/Global/Eclipse.gitignore +0 -6
- data/roles/qb.gitignore/files/gitignore/Global/JetBrains.gitignore +3 -0
- data/roles/qb.gitignore/files/gitignore/Global/macOS.gitignore +25 -26
- data/roles/qb.gitignore/files/gitignore/Python.gitignore +3 -0
- data/roles/qb.gitignore/files/gitignore/Qb.gitignore +3 -0
- data/roles/qb.gitignore/files/gitignore/Rails.gitignore +1 -1
- data/roles/qb.gitignore/files/gitignore/Symfony.gitignore +0 -4
- data/roles/qb.gitignore/files/gitignore/TeX.gitignore +3 -0
- data/roles/qb.gitignore/files/gitignore/Unity.gitignore +0 -1
- data/roles/qb.gitignore/files/gitignore/VisualStudio.gitignore +8 -1
- data/roles/qb.qb_role/meta/qb.yml +6 -0
- data/roles/qb.qb_role/tasks/module.yml +5 -0
- data/roles/qb.qb_role/templates/qb.yml.j2 +2 -2
- data/roles/qb.role/templates/README.md.j2 +10 -2
- data/roles/qb.yarn/tasks/{distro → distribution}/MacOSX.yml +0 -0
- data/roles/qb.yarn/tasks/main.yml +1 -1
- metadata +25 -5
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 5b750783c213e2d82f770659b4e6fe1212f4f76c
|
4
|
+
data.tar.gz: 88cafa2c28be8b6591e4a143dbb1bcbeada113a1
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 3342398ad96337ebfe5a2322aa89ad7b08a042b49d11ec5d12ed37df2bbe3564f9421d72e6dda4d8dfdf77323d9a6d755946a65f911de1b5d0f404f93ec58af9
|
7
|
+
data.tar.gz: 11f0441877e9366c1da35b0fb6d569f55b8b02ebd0f1ac6b642ab263e89747f55d53ee0e6d5c29e751024c89dd3da3e25e1244cce11d624e20c17e685fac31b9
|
data/exe/qb
CHANGED
@@ -278,7 +278,8 @@ def main args
|
|
278
278
|
QB::Role.search_path,
|
279
279
|
].
|
280
280
|
flatten. # since QB::Role.search_path is an Array
|
281
|
-
|
281
|
+
select(&:directory?).
|
282
|
+
map(&:realpath). # so uniq works
|
282
283
|
uniq, # drop dups (seems to keep first instance so preserves priority)
|
283
284
|
|
284
285
|
ANSIBLE_LIBRARY: [
|
@@ -320,7 +321,7 @@ def main args
|
|
320
321
|
<%= playbook_path %>
|
321
322
|
END
|
322
323
|
|
323
|
-
cmd = Cmds
|
324
|
+
cmd = Cmds.new cmd_template, {
|
324
325
|
env: env.map {|k, v| [k, v.is_a?(Array) ? v.join(':') : v]}.to_h,
|
325
326
|
|
326
327
|
kwds: {
|
@@ -392,25 +393,23 @@ def main args
|
|
392
393
|
end
|
393
394
|
end
|
394
395
|
|
395
|
-
|
396
|
-
|
397
|
-
|
398
|
-
|
399
|
-
|
400
|
-
QB::Util::STDIO::Service.new(name, dest).tap {|s| s.open! }
|
401
|
-
end
|
402
|
-
|
403
|
-
status = cmd.stream
|
404
|
-
|
405
|
-
# close the stdio services
|
406
|
-
stdio_services.each {|s| s.close! }
|
407
|
-
|
408
|
-
if status != 0
|
409
|
-
puts "ERROR ansible-playbook failed."
|
410
|
-
end
|
411
|
-
|
412
|
-
exit status
|
396
|
+
with_clean_env do
|
397
|
+
# boot up stdio services so that ansible modules can stream to our
|
398
|
+
# stdout and stderr to print stuff (including debug lines) in real-time
|
399
|
+
stdio_services = {'out' => $stdout, 'err' => $stderr}.map do |name, dest|
|
400
|
+
QB::Util::STDIO::Service.new(name, dest).tap {|s| s.open! }
|
413
401
|
end
|
402
|
+
|
403
|
+
status = cmd.stream
|
404
|
+
|
405
|
+
# close the stdio services
|
406
|
+
stdio_services.each {|s| s.close! }
|
407
|
+
|
408
|
+
if status != 0
|
409
|
+
puts "ERROR ansible-playbook failed."
|
410
|
+
end
|
411
|
+
|
412
|
+
exit status
|
414
413
|
end
|
415
414
|
end
|
416
415
|
|
data/lib/qb/options.rb
CHANGED
@@ -16,6 +16,14 @@ module QB
|
|
16
16
|
'run' => true,
|
17
17
|
}
|
18
18
|
|
19
|
+
# appended on the end of an `opts.on` call to create a newline after
|
20
|
+
# the option (making the help output a bit easier to read)
|
21
|
+
#
|
22
|
+
# you might think the empty string would be reasonable, but OptionParser
|
23
|
+
# blows up if you do that.
|
24
|
+
#
|
25
|
+
SPACER = ' '
|
26
|
+
|
19
27
|
# attributes
|
20
28
|
# =======================================================================
|
21
29
|
|
@@ -179,6 +187,24 @@ module QB
|
|
179
187
|
end
|
180
188
|
end
|
181
189
|
|
190
|
+
if option.has_examples?
|
191
|
+
on_args << 'examples:'
|
192
|
+
|
193
|
+
option.examples.each_with_index {|example, index|
|
194
|
+
lines = example.lines.to_a
|
195
|
+
|
196
|
+
pp lines
|
197
|
+
|
198
|
+
on_args << ((index + 1).to_s + '.').ljust(4) + lines.first.chomp
|
199
|
+
|
200
|
+
lines[1..-1].each {|line|
|
201
|
+
on_args << (" ".ljust(4) + line.chomp)
|
202
|
+
}
|
203
|
+
}
|
204
|
+
end
|
205
|
+
|
206
|
+
on_args << SPACER
|
207
|
+
|
182
208
|
QB.debug "adding option", option: option, on_args: on_args
|
183
209
|
|
184
210
|
opts.on(*on_args) do |value|
|
@@ -255,7 +281,8 @@ module QB
|
|
255
281
|
'--HOSTS=HOSTS',
|
256
282
|
Array,
|
257
283
|
"set playbook host",
|
258
|
-
"DEFAULT: localhost"
|
284
|
+
"DEFAULT: localhost",
|
285
|
+
SPACER
|
259
286
|
) do |value|
|
260
287
|
@qb['hosts'] = value
|
261
288
|
end
|
@@ -265,6 +292,7 @@ module QB
|
|
265
292
|
'--INVENTORY=FILEPATH',
|
266
293
|
String,
|
267
294
|
"set inventory file",
|
295
|
+
SPACER
|
268
296
|
) do |value|
|
269
297
|
@qb['inventory'] = value
|
270
298
|
end
|
@@ -273,7 +301,8 @@ module QB
|
|
273
301
|
'-U',
|
274
302
|
'--USER=USER',
|
275
303
|
String,
|
276
|
-
"ansible become user for the playbook"
|
304
|
+
"ansible become user for the playbook",
|
305
|
+
SPACER
|
277
306
|
) do |value|
|
278
307
|
@qb['user'] = value
|
279
308
|
end
|
@@ -283,13 +312,15 @@ module QB
|
|
283
312
|
'--TAGS=TAGS',
|
284
313
|
Array,
|
285
314
|
"playbook tags",
|
315
|
+
SPACER
|
286
316
|
) do |value|
|
287
317
|
@qb['tags'] = value
|
288
318
|
end
|
289
319
|
|
290
320
|
opts.on(
|
291
321
|
'-V[LEVEL]',
|
292
|
-
"run playbook in verbose mode. use like -VVV or -V3."
|
322
|
+
"run playbook in verbose mode. use like -VVV or -V3.",
|
323
|
+
SPACER
|
293
324
|
) do |value|
|
294
325
|
# QB.debug "verbose", value: value
|
295
326
|
|
@@ -312,6 +343,7 @@ module QB
|
|
312
343
|
opts.on(
|
313
344
|
'--NO-FACTS',
|
314
345
|
"don't gather facts",
|
346
|
+
SPACER
|
315
347
|
) do |value|
|
316
348
|
@qb['facts'] = false
|
317
349
|
end
|
@@ -319,7 +351,8 @@ module QB
|
|
319
351
|
opts.on(
|
320
352
|
'--PRINT=FLAGS',
|
321
353
|
Array,
|
322
|
-
"set what to print before running."
|
354
|
+
"set what to print before running.",
|
355
|
+
SPACER
|
323
356
|
) do |value|
|
324
357
|
@qb['print'] = value
|
325
358
|
end
|
@@ -327,6 +360,7 @@ module QB
|
|
327
360
|
opts.on(
|
328
361
|
'--NO-RUN',
|
329
362
|
"don't run the playbook (useful to just print stuff)",
|
363
|
+
SPACER
|
330
364
|
) do |value|
|
331
365
|
@qb['run'] = false
|
332
366
|
end
|
data/lib/qb/options/option.rb
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
module QB
|
2
2
|
class Options
|
3
3
|
class Option
|
4
|
-
|
4
|
+
EXAMPLES_KEYS = ['examples', 'example']
|
5
5
|
|
6
6
|
# the role that this option is for
|
7
7
|
# attr_reader :role
|
@@ -60,9 +60,10 @@ module QB
|
|
60
60
|
def description
|
61
61
|
value = meta_or 'description',
|
62
62
|
"set the #{ @var_name } role variable"
|
63
|
+
|
64
|
+
line_break = "\n" + "\t" * 5
|
63
65
|
|
64
66
|
if @meta['type'].is_a?(Hash) && @meta['type'].key?('one_of')
|
65
|
-
line_break = "\n" + "\t" * 5
|
66
67
|
value += " options:" +
|
67
68
|
"#{ line_break }#{ @meta['type']['one_of'].join(line_break) }"
|
68
69
|
end
|
@@ -85,6 +86,25 @@ module QB
|
|
85
86
|
end
|
86
87
|
end
|
87
88
|
|
89
|
+
# test if the option has any examples.
|
90
|
+
#
|
91
|
+
# @return [Boolean]
|
92
|
+
#
|
93
|
+
def has_examples?
|
94
|
+
EXAMPLES_KEYS.any? {|key| meta.key? key}
|
95
|
+
end
|
96
|
+
|
97
|
+
# get an array of examples for the option. returns `[]` if no examples
|
98
|
+
# are defined.
|
99
|
+
#
|
100
|
+
# @return [Array<String>]
|
101
|
+
#
|
102
|
+
def examples
|
103
|
+
value = meta_or EXAMPLES_KEYS, []
|
104
|
+
|
105
|
+
if value.is_a? String then [value] else value end
|
106
|
+
end
|
107
|
+
|
88
108
|
private
|
89
109
|
|
90
110
|
# get the value at the first found of the keys or the default.
|
data/lib/qb/role.rb
CHANGED
@@ -23,10 +23,14 @@ module QB
|
|
23
23
|
# the role's ansible "name", which is it's directory name.
|
24
24
|
attr_reader :name
|
25
25
|
|
26
|
-
# @!attribute [r]
|
26
|
+
# @!attribute [r] display_path
|
27
|
+
#
|
28
|
+
# the path to the role that we display. we only show the directory name
|
29
|
+
# for QB roles, and use {QB::Util.compact_path} to show `.` and `~` for
|
30
|
+
# paths relative to the current directory and home directory, respectively.
|
31
|
+
#
|
27
32
|
# @return [Pathname]
|
28
|
-
|
29
|
-
attr_reader :rel_path
|
33
|
+
attr_reader :display_path
|
30
34
|
|
31
35
|
# @!attribute [r] meta_path
|
32
36
|
# @return [String, nil]
|
@@ -98,7 +102,7 @@ module QB
|
|
98
102
|
def self.roles_paths dir
|
99
103
|
cfg_roles_path(dir) + [
|
100
104
|
dir.join('roles'),
|
101
|
-
dir.join('roles', 'tmp')
|
105
|
+
dir.join('roles', 'tmp'),
|
102
106
|
]
|
103
107
|
end
|
104
108
|
|
@@ -127,7 +131,8 @@ module QB
|
|
127
131
|
# in source control.
|
128
132
|
# 3.
|
129
133
|
#
|
130
|
-
# @return [Array<Pathname>]
|
134
|
+
# @return [Array<Pathname>]
|
135
|
+
# places to look for role dirs.
|
131
136
|
#
|
132
137
|
def self.search_path
|
133
138
|
[
|
@@ -139,7 +144,8 @@ module QB
|
|
139
144
|
QB::Util.resolve('dev'),
|
140
145
|
].map {|dir|
|
141
146
|
roles_paths dir
|
142
|
-
}.
|
147
|
+
}.
|
148
|
+
flatten
|
143
149
|
end
|
144
150
|
|
145
151
|
# array of QB::Role found in search path.
|
@@ -154,14 +160,10 @@ module QB
|
|
154
160
|
search_dir.children.select {|child| role_dir? child }
|
155
161
|
}.
|
156
162
|
flatten.
|
157
|
-
# should allow uniq to remove dups
|
158
|
-
map {|role_dir| role_dir.realpath }.
|
159
|
-
# needed when qb is run from the qb repo since QB::GEM_ROLES_DIR and
|
160
|
-
# ./roles are the same dir
|
161
|
-
uniq.
|
162
163
|
map {|role_dir|
|
163
164
|
QB::Role.new role_dir
|
164
|
-
}
|
165
|
+
}.
|
166
|
+
uniq
|
165
167
|
end
|
166
168
|
|
167
169
|
# get an array of QB::Role that match an input string
|
@@ -171,7 +173,7 @@ module QB
|
|
171
173
|
|
172
174
|
# first off, see if input matches any relative paths exactly
|
173
175
|
available.each {|role|
|
174
|
-
return [role] if role.
|
176
|
+
return [role] if role.display_path.to_s == input
|
175
177
|
}
|
176
178
|
|
177
179
|
# create an array of "separator" variations to try *exact* matching
|
@@ -221,7 +223,7 @@ module QB
|
|
221
223
|
|
222
224
|
# see if we word match any relative paths
|
223
225
|
name_word_matches = available.select {|role|
|
224
|
-
QB::Util.words_start_with? role.
|
226
|
+
QB::Util.words_start_with? role.display_path.to_s, input
|
225
227
|
}
|
226
228
|
return name_word_matches unless name_word_matches.empty?
|
227
229
|
|
@@ -283,7 +285,23 @@ module QB
|
|
283
285
|
end
|
284
286
|
else
|
285
287
|
current_include_path + [role.namespaceless]
|
286
|
-
end
|
288
|
+
end
|
289
|
+
end
|
290
|
+
|
291
|
+
# the path we display in the CLI, see {#display_path}.
|
292
|
+
#
|
293
|
+
# @param [Pathname | String] path
|
294
|
+
# input path to transform.
|
295
|
+
#
|
296
|
+
# @return [Pathname]
|
297
|
+
# path to display.
|
298
|
+
#
|
299
|
+
def self.to_display_path path
|
300
|
+
if path.realpath.start_with? QB::GEM_ROLES_DIR
|
301
|
+
path.realpath.sub (QB::GEM_ROLES_DIR.to_s + '/'), ''
|
302
|
+
else
|
303
|
+
QB::Util.contract_path path
|
304
|
+
end
|
287
305
|
end
|
288
306
|
|
289
307
|
# instance methods
|
@@ -305,6 +323,8 @@ module QB
|
|
305
323
|
raise Errno::ENOTDIR.new @path.to_s
|
306
324
|
end
|
307
325
|
|
326
|
+
@display_path = self.class.to_display_path @path
|
327
|
+
|
308
328
|
@meta_path = if (@path + 'meta' + 'qb').exist?
|
309
329
|
@path + 'meta' + 'qb'
|
310
330
|
elsif (@path + 'meta' + 'qb.yml').exist?
|
@@ -313,19 +333,11 @@ module QB
|
|
313
333
|
raise Errno::ENOENT.new "#{ @path.join('meta').to_s }/[qb|qb.yml]"
|
314
334
|
end
|
315
335
|
|
316
|
-
@rel_path = if @path.to_s.start_with? QB::GEM_ROLES_DIR.to_s
|
317
|
-
@path.sub(QB::GEM_ROLES_DIR.to_s + '/', '')
|
318
|
-
elsif @path.to_s.start_with? Dir.getwd
|
319
|
-
@path.sub(Dir.getwd + '/', './')
|
320
|
-
else
|
321
|
-
@path
|
322
|
-
end
|
323
|
-
|
324
336
|
@name = @path.to_s.split(File::SEPARATOR).last
|
325
337
|
end
|
326
338
|
|
327
339
|
def to_s
|
328
|
-
@
|
340
|
+
@display_path.to_s
|
329
341
|
end
|
330
342
|
|
331
343
|
def namespace
|
@@ -341,7 +353,7 @@ module QB
|
|
341
353
|
end
|
342
354
|
|
343
355
|
def options_key
|
344
|
-
@
|
356
|
+
@display_path.to_s
|
345
357
|
end
|
346
358
|
|
347
359
|
# load qb metadata from meta/qb.yml or from executing meta/qb and parsing
|
@@ -547,11 +559,11 @@ module QB
|
|
547
559
|
NRSER.git_root cwd
|
548
560
|
|
549
561
|
when 'cwd'
|
550
|
-
debug "returning current working directory"
|
562
|
+
QB.debug "returning current working directory"
|
551
563
|
cwd
|
552
564
|
|
553
565
|
when Hash
|
554
|
-
debug "qb meta option is a Hash"
|
566
|
+
QB.debug "qb meta option is a Hash"
|
555
567
|
|
556
568
|
unless value.length == 1
|
557
569
|
raise "#{ meta_path.to_s }:default_dir invalid: #{ value.inspect }"
|
@@ -590,7 +602,7 @@ module QB
|
|
590
602
|
raise "find_up filename must be string, found #{ filename.inspect }"
|
591
603
|
end
|
592
604
|
|
593
|
-
debug "found 'find_up', looking for file named #{ filename }"
|
605
|
+
QB.debug "found 'find_up', looking for file named #{ filename }"
|
594
606
|
|
595
607
|
QB::Util.find_up filename
|
596
608
|
|
@@ -608,7 +620,21 @@ module QB
|
|
608
620
|
meta_or 'ansible_options', {}
|
609
621
|
end
|
610
622
|
|
623
|
+
# language inter-op
|
624
|
+
# -----------------------------------------------------------------------
|
625
|
+
|
626
|
+
def hash
|
627
|
+
path.realpath.hash
|
628
|
+
end
|
629
|
+
|
630
|
+
def == other
|
631
|
+
other.is_a?(Role) && other.path.realpath == path.realpath
|
632
|
+
end
|
633
|
+
|
634
|
+
alias_method :eql?, :==
|
635
|
+
|
611
636
|
private
|
637
|
+
# -----------------------------------------------------------------------
|
612
638
|
|
613
639
|
# get the value at the first found of the keys or the default.
|
614
640
|
#
|
data/lib/qb/util.rb
CHANGED
@@ -1,3 +1,7 @@
|
|
1
|
+
require 'nrser'
|
2
|
+
|
3
|
+
using NRSER
|
4
|
+
|
1
5
|
module QB
|
2
6
|
module Util
|
3
7
|
# split a string into 'words' for word-based matching
|
@@ -51,6 +55,27 @@ module QB
|
|
51
55
|
raise "resolution failed: #{ segments.inspect }"
|
52
56
|
end
|
53
57
|
|
58
|
+
# do kind of the opposite of File.expand_path -- turn the home dir into ~
|
59
|
+
# and the current dir into .
|
60
|
+
#
|
61
|
+
# @param [Pathname | String]
|
62
|
+
# path to contract.
|
63
|
+
#
|
64
|
+
# @return [Pathname]
|
65
|
+
# contracted path.
|
66
|
+
#
|
67
|
+
def self.contract_path path
|
68
|
+
contracted = if path.start_with? Dir.pwd
|
69
|
+
path.sub Dir.pwd, '.'
|
70
|
+
elsif path.start_with? ENV['HOME']
|
71
|
+
path.sub ENV['HOME'], '~'
|
72
|
+
else
|
73
|
+
path
|
74
|
+
end
|
75
|
+
|
76
|
+
Pathname.new contracted
|
77
|
+
end
|
78
|
+
|
54
79
|
# find `filename` in `from` or closest parent directory.
|
55
80
|
#
|
56
81
|
# @param [String] filename
|
data/lib/qb/version.rb
CHANGED
data/library/qb_facts.py
CHANGED
@@ -59,9 +59,35 @@ def semver_parse(version):
|
|
59
59
|
|
60
60
|
cmd = ['node', '--eval', stmt]
|
61
61
|
|
62
|
-
out = subprocess.check_output(
|
62
|
+
out = subprocess.check_output(
|
63
|
+
cmd,
|
64
|
+
cwd = os.path.realpath(
|
65
|
+
os.path.join(__file__, '..', '..')
|
66
|
+
)
|
67
|
+
)
|
63
68
|
|
64
|
-
|
69
|
+
version = json.loads(out)
|
70
|
+
|
71
|
+
version['is_release'] = len(version['prerelease']) == 0
|
72
|
+
|
73
|
+
version['is_dev'] = (
|
74
|
+
len(version['prerelease']) > 0 and
|
75
|
+
version['prerelease'][0] == 'dev'
|
76
|
+
)
|
77
|
+
|
78
|
+
version['is_rc'] = (
|
79
|
+
len(version['prerelease']) > 0 and
|
80
|
+
version['prerelease'][0] == 'rc'
|
81
|
+
)
|
82
|
+
|
83
|
+
if version['is_release']:
|
84
|
+
version['type'] = 'release'
|
85
|
+
else:
|
86
|
+
version['type'] = version['prerelease'][0]
|
87
|
+
|
88
|
+
version['release'] = "%(major)s.%(minor)s.%(patch)s" % version
|
89
|
+
|
90
|
+
return version
|
65
91
|
|
66
92
|
|
67
93
|
class FilterModule(object):
|
data/qb.gemspec
CHANGED
@@ -93,7 +93,8 @@ Gem::Specification.new do |spec|
|
|
93
93
|
spec.add_development_dependency "rspec"
|
94
94
|
spec.add_development_dependency "yard"
|
95
95
|
|
96
|
-
spec.add_dependency "cmds",'~> 0.0', ">= 0.
|
96
|
+
spec.add_dependency "cmds",'~> 0.0', ">= 0.2.0"
|
97
|
+
spec.add_dependency "nrser",'~> 0.0', ">= 0.0.16"
|
97
98
|
spec.add_dependency "nrser-extras", '~> 0.0', ">= 0.0.3"
|
98
99
|
spec.add_dependency "state_mate", '~> 0.0', ">= 0.0.9"
|
99
100
|
spec.add_dependency 'parseconfig', '~> 1.0', '>= 1.0.8'
|
@@ -1,33 +1,12 @@
|
|
1
1
|
# See https://www.dartlang.org/tools/private-files.html
|
2
2
|
|
3
3
|
# Files and directories created by pub
|
4
|
-
|
5
|
-
# SDK 1.20 and later (no longer creates packages directories)
|
6
4
|
.packages
|
7
5
|
.pub/
|
8
6
|
build/
|
9
|
-
|
10
|
-
|
11
|
-
# (Include if the minimum SDK version specified in pubsepc.yaml is earlier than 1.20)
|
12
|
-
.project
|
13
|
-
.buildlog
|
14
|
-
**/packages/
|
15
|
-
|
16
|
-
|
17
|
-
# Files created by dart2js
|
18
|
-
# (Most Dart developers will use pub build to compile Dart, use/modify these
|
19
|
-
# rules if you intend to use dart2js directly
|
20
|
-
# Convention is to use extension '.dart.js' for Dart compiled to Javascript to
|
21
|
-
# differentiate from explicit Javascript files)
|
22
|
-
*.dart.js
|
23
|
-
*.part.js
|
24
|
-
*.js.deps
|
25
|
-
*.js.map
|
26
|
-
*.info.json
|
7
|
+
# If you're building an application, you may want to check-in your pubspec.lock
|
8
|
+
pubspec.lock
|
27
9
|
|
28
10
|
# Directory created by dartdoc
|
11
|
+
# If you don't generate documentation locally you can remove this line.
|
29
12
|
doc/api/
|
30
|
-
|
31
|
-
# Don't commit pubspec lock file
|
32
|
-
# (Library packages only! Remove pattern if developing an application package)
|
33
|
-
pubspec.lock
|
@@ -11,9 +11,6 @@ local.properties
|
|
11
11
|
.loadpath
|
12
12
|
.recommenders
|
13
13
|
|
14
|
-
# Eclipse Core
|
15
|
-
.project
|
16
|
-
|
17
14
|
# External tool builders
|
18
15
|
.externalToolBuilders/
|
19
16
|
|
@@ -26,9 +23,6 @@ local.properties
|
|
26
23
|
# CDT-specific (C/C++ Development Tooling)
|
27
24
|
.cproject
|
28
25
|
|
29
|
-
# JDT-specific (Eclipse Java Development Tools)
|
30
|
-
.classpath
|
31
|
-
|
32
26
|
# Java annotation processor (APT)
|
33
27
|
.factorypath
|
34
28
|
|
@@ -1,26 +1,25 @@
|
|
1
|
-
*.DS_Store
|
2
|
-
.AppleDouble
|
3
|
-
.LSOverride
|
4
|
-
|
5
|
-
# Icon must end with two \r
|
6
|
-
Icon
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
.
|
14
|
-
.
|
15
|
-
.
|
16
|
-
.
|
17
|
-
.
|
18
|
-
.
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
.
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
.apdisk
|
1
|
+
*.DS_Store
|
2
|
+
.AppleDouble
|
3
|
+
.LSOverride
|
4
|
+
|
5
|
+
# Icon must end with two \r
|
6
|
+
Icon
|
7
|
+
|
8
|
+
# Thumbnails
|
9
|
+
._*
|
10
|
+
|
11
|
+
# Files that might appear in the root of a volume
|
12
|
+
.DocumentRevisions-V100
|
13
|
+
.fseventsd
|
14
|
+
.Spotlight-V100
|
15
|
+
.TemporaryItems
|
16
|
+
.Trashes
|
17
|
+
.VolumeIcon.icns
|
18
|
+
.com.apple.timemachine.donotpresent
|
19
|
+
|
20
|
+
# Directories potentially created on remote AFP share
|
21
|
+
.AppleDB
|
22
|
+
.AppleDesktop
|
23
|
+
Network Trash Folder
|
24
|
+
Temporary Items
|
25
|
+
.apdisk
|
@@ -25,7 +25,6 @@
|
|
25
25
|
/bin/*
|
26
26
|
!bin/console
|
27
27
|
!bin/symfony_requirements
|
28
|
-
/vendor/
|
29
28
|
|
30
29
|
# Assets and user uploads
|
31
30
|
/web/bundles/
|
@@ -38,8 +37,5 @@
|
|
38
37
|
# Build data
|
39
38
|
/build/
|
40
39
|
|
41
|
-
# Composer PHAR
|
42
|
-
/composer.phar
|
43
|
-
|
44
40
|
# Backup entities generated with doctrine:generate:entities command
|
45
41
|
**/Entity/*~
|
@@ -219,6 +219,7 @@ UpgradeLog*.htm
|
|
219
219
|
# SQL Server files
|
220
220
|
*.mdf
|
221
221
|
*.ldf
|
222
|
+
*.ndf
|
222
223
|
|
223
224
|
# Business Intelligence projects
|
224
225
|
*.rdl.data
|
@@ -278,4 +279,10 @@ __pycache__/
|
|
278
279
|
# !tools/packages.config
|
279
280
|
|
280
281
|
# Telerik's JustMock configuration file
|
281
|
-
*.jmconfig
|
282
|
+
*.jmconfig
|
283
|
+
|
284
|
+
# BizTalk build output
|
285
|
+
*.btp.cs
|
286
|
+
*.btm.cs
|
287
|
+
*.odx.cs
|
288
|
+
*.xsd.cs
|
@@ -16,7 +16,13 @@ options:
|
|
16
16
|
create ruby module boilerplate(s) in library using QB::AnsibleModule.
|
17
17
|
type: array
|
18
18
|
required: false
|
19
|
+
# TODO not yet implemented
|
19
20
|
implies: library
|
21
|
+
examples:
|
22
|
+
- |
|
23
|
+
produces library/some_module execuable with a module named SomeModule
|
24
|
+
|
25
|
+
--modules=some_module
|
20
26
|
|
21
27
|
- include: qb.role
|
22
28
|
as: false
|
@@ -2,6 +2,11 @@
|
|
2
2
|
- set_fact:
|
3
3
|
qb_role_module_class: "{{ qb_role_module | class_case }}"
|
4
4
|
qb_role_module_path: "{{ role_dest }}/library/{{ qb_role_module }}"
|
5
|
+
|
6
|
+
- name: create library directory
|
7
|
+
file:
|
8
|
+
dest: "{{ qb_role_module_path | dirname }}"
|
9
|
+
state: directory
|
5
10
|
|
6
11
|
- name: "create {{ qb_role_module }} module"
|
7
12
|
template:
|
@@ -42,8 +42,8 @@ default_user: null
|
|
42
42
|
# set to false to not save options in .qb-options.yml files
|
43
43
|
save_options: true
|
44
44
|
|
45
|
-
#
|
46
|
-
|
45
|
+
# options to pass to ansible-playbook
|
46
|
+
ansible_options: {}
|
47
47
|
|
48
48
|
options: []
|
49
49
|
# - name: example
|
File without changes
|
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.54
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- nrser
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2017-04-
|
11
|
+
date: 2017-04-11 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -75,7 +75,7 @@ dependencies:
|
|
75
75
|
version: '0.0'
|
76
76
|
- - ">="
|
77
77
|
- !ruby/object:Gem::Version
|
78
|
-
version: 0.
|
78
|
+
version: 0.2.0
|
79
79
|
type: :runtime
|
80
80
|
prerelease: false
|
81
81
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -85,7 +85,27 @@ dependencies:
|
|
85
85
|
version: '0.0'
|
86
86
|
- - ">="
|
87
87
|
- !ruby/object:Gem::Version
|
88
|
-
version: 0.
|
88
|
+
version: 0.2.0
|
89
|
+
- !ruby/object:Gem::Dependency
|
90
|
+
name: nrser
|
91
|
+
requirement: !ruby/object:Gem::Requirement
|
92
|
+
requirements:
|
93
|
+
- - "~>"
|
94
|
+
- !ruby/object:Gem::Version
|
95
|
+
version: '0.0'
|
96
|
+
- - ">="
|
97
|
+
- !ruby/object:Gem::Version
|
98
|
+
version: 0.0.16
|
99
|
+
type: :runtime
|
100
|
+
prerelease: false
|
101
|
+
version_requirements: !ruby/object:Gem::Requirement
|
102
|
+
requirements:
|
103
|
+
- - "~>"
|
104
|
+
- !ruby/object:Gem::Version
|
105
|
+
version: '0.0'
|
106
|
+
- - ">="
|
107
|
+
- !ruby/object:Gem::Version
|
108
|
+
version: 0.0.16
|
89
109
|
- !ruby/object:Gem::Dependency
|
90
110
|
name: nrser-extras
|
91
111
|
requirement: !ruby/object:Gem::Requirement
|
@@ -597,7 +617,7 @@ files:
|
|
597
617
|
- roles/qb.yarn/defaults/main.yml
|
598
618
|
- roles/qb.yarn/meta/main.yml
|
599
619
|
- roles/qb.yarn/meta/qb.yml
|
600
|
-
- roles/qb.yarn/tasks/
|
620
|
+
- roles/qb.yarn/tasks/distribution/MacOSX.yml
|
601
621
|
- roles/qb.yarn/tasks/main.yml
|
602
622
|
homepage: https://github.com/nrser/qb
|
603
623
|
licenses:
|