qb 0.1.23 → 0.1.24
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/lib/qb/options.rb +7 -94
- data/lib/qb/options/option.rb +104 -0
- data/lib/qb/role.rb +61 -7
- data/lib/qb/version.rb +1 -1
- data/roles/qb.hack_npm/meta/qb.yml +0 -11
- data/roles/qb.hack_npm/tasks/create.yml +1 -1
- data/roles/qb.hack_npm/tasks/main.yml +31 -23
- data/roles/qb.hack_npm/vars/main.yml +0 -2
- data/roles/qb.npm_package/defaults/main.yml +1 -0
- data/roles/qb.npm_package/tasks/main.yml +9 -1
- data/roles/qb.nrser_js/.qb-options.yml +6 -0
- data/roles/qb.nrser_js/files/.babelrc +69 -0
- data/roles/qb.nrser_js/files/.gitkeep +0 -0
- data/roles/qb.nrser_js/files/gulpfile.js +4 -0
- data/roles/qb.nrser_js/files/ughfile.js +7 -0
- data/roles/qb.nrser_js/meta/main.yml +17 -0
- data/roles/qb.nrser_js/meta/qb.yml +47 -0
- data/roles/qb.nrser_js/tasks/main.yml +63 -0
- data/roles/qb.nrser_js/vars/main.yml +28 -0
- metadata +12 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 8dfe61f1565472727bdae6b030b59ef7bdeca300
|
4
|
+
data.tar.gz: 75c4ca2512edb66c32d35c4b24c16e2199fa5ca1
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 8d20ad6373ec039f0e45cc97a8885ae6e0871fa18a559550b5ea284f2b6af2598d98bad66063c8c74ddc60e5d42ff42636d7627932d15ed6b9d76f35a90e139a
|
7
|
+
data.tar.gz: f74ada30a77323db4e41705a9cb57fab452b795c0da82412e9a944c0ba7a5ca430a2825f0d50008dfe2ae4ed7044b23e97d23339fbca5f6b0c8398e4f06bd323
|
data/lib/qb/options.rb
CHANGED
@@ -1,5 +1,6 @@
|
|
1
1
|
require 'optparse'
|
2
|
-
|
2
|
+
|
3
|
+
require_relative "options/option"
|
3
4
|
|
4
5
|
module QB
|
5
6
|
module Options
|
@@ -30,94 +31,6 @@ module QB
|
|
30
31
|
option_name.gsub '-', '_'
|
31
32
|
end
|
32
33
|
|
33
|
-
#
|
34
|
-
class Option
|
35
|
-
# the role that this option is for
|
36
|
-
# attr_reader :role
|
37
|
-
|
38
|
-
# the entry from the qb metadata for this option
|
39
|
-
attr_reader :meta
|
40
|
-
|
41
|
-
# array of strings representing how this option was included
|
42
|
-
# empty for top-level options
|
43
|
-
attr_reader :include_path
|
44
|
-
|
45
|
-
# the name of the option in the qb metadata, equal to #meta['name']
|
46
|
-
attr_reader :meta_name
|
47
|
-
|
48
|
-
# the name that this option will be available in the cli as
|
49
|
-
attr_reader :cli_name
|
50
|
-
|
51
|
-
# the name that the value will be passed to ansible as
|
52
|
-
attr_reader :var_name
|
53
|
-
|
54
|
-
# the value of the option, or `nil` if we never assign one
|
55
|
-
attr_accessor :value
|
56
|
-
|
57
|
-
def initialize role, meta, include_path
|
58
|
-
# @role = WeakRef.new role
|
59
|
-
@meta = meta
|
60
|
-
@include_path = include_path
|
61
|
-
|
62
|
-
@meta_name = meta.fetch 'name'
|
63
|
-
|
64
|
-
@cli_name = if @include_path.empty?
|
65
|
-
Options.cli_ize_name @meta_name
|
66
|
-
else
|
67
|
-
Options.cli_ize_name "#{ @include_path.join('-') }-#{ @meta_name }"
|
68
|
-
end
|
69
|
-
|
70
|
-
@var_name = if role.var_prefix
|
71
|
-
Options.var_ize_name "#{ role.var_prefix }_#{ @meta_name }"
|
72
|
-
else
|
73
|
-
Options.var_ize_name @meta_name
|
74
|
-
end
|
75
|
-
|
76
|
-
@value = nil
|
77
|
-
end
|
78
|
-
|
79
|
-
# if the option is required in the cli
|
80
|
-
def required?
|
81
|
-
!!meta_or(['required', 'require'], false)
|
82
|
-
end
|
83
|
-
|
84
|
-
# if we should save the option value in .qb-options.yml
|
85
|
-
def save?
|
86
|
-
!!meta_or('save', true)
|
87
|
-
end
|
88
|
-
|
89
|
-
def description
|
90
|
-
value = meta_or 'description',
|
91
|
-
"set the #{ @var_name } role variable"
|
92
|
-
|
93
|
-
if @meta['type'].is_a?(Hash) && @meta['type'].key?('one_of')
|
94
|
-
line_break = "\n" + "\t" * 5
|
95
|
-
value += " options:" +
|
96
|
-
"#{ line_break }#{ @meta['type']['one_of'].join(line_break) }"
|
97
|
-
end
|
98
|
-
|
99
|
-
value
|
100
|
-
end
|
101
|
-
|
102
|
-
private
|
103
|
-
|
104
|
-
# get the value at the first found of the keys or the default.
|
105
|
-
#
|
106
|
-
# `nil` (`null` in yaml files) are treated like they're not there at
|
107
|
-
# all. you need to use `false` if you want to tell QB not to do something.
|
108
|
-
#
|
109
|
-
def meta_or keys, default
|
110
|
-
keys = [keys] if keys.is_a? String
|
111
|
-
keys.each do |key|
|
112
|
-
if meta.key?(key) && !meta[key].nil?
|
113
|
-
return meta[key]
|
114
|
-
end
|
115
|
-
end
|
116
|
-
default
|
117
|
-
end
|
118
|
-
|
119
|
-
end # Option
|
120
|
-
|
121
34
|
def self.include_role opts, options, include_meta, include_path
|
122
35
|
role_name = include_meta['include']
|
123
36
|
role = QB::Role.require role_name
|
@@ -145,7 +58,7 @@ module QB
|
|
145
58
|
def self.add opts, options, role, include_path = []
|
146
59
|
QB.debug "adding options", "role" => role
|
147
60
|
|
148
|
-
role.
|
61
|
+
role.option_metas.each do |option_meta|
|
149
62
|
if option_meta.key? 'include'
|
150
63
|
include_role opts, options, option_meta, include_path
|
151
64
|
|
@@ -159,8 +72,8 @@ module QB
|
|
159
72
|
:OPTIONAL
|
160
73
|
end
|
161
74
|
|
162
|
-
|
163
|
-
on_args = []
|
75
|
+
on_args = [arg_style]
|
76
|
+
# on_args = []
|
164
77
|
|
165
78
|
if option.meta['type'] == 'boolean'
|
166
79
|
# don't use short names when included (for now)
|
@@ -266,7 +179,7 @@ module QB
|
|
266
179
|
|
267
180
|
opts.on(
|
268
181
|
'-H',
|
269
|
-
'
|
182
|
+
'--HOSTS=HOSTS',
|
270
183
|
Array,
|
271
184
|
"set playbook host",
|
272
185
|
"DEFAULT: localhost"
|
@@ -276,7 +189,7 @@ module QB
|
|
276
189
|
|
277
190
|
opts.on(
|
278
191
|
'-U',
|
279
|
-
'
|
192
|
+
'--USER=USER',
|
280
193
|
String,
|
281
194
|
"ansible become user for the playbook"
|
282
195
|
) do |value|
|
@@ -0,0 +1,104 @@
|
|
1
|
+
module QB
|
2
|
+
module Options
|
3
|
+
class Option
|
4
|
+
|
5
|
+
|
6
|
+
# the role that this option is for
|
7
|
+
# attr_reader :role
|
8
|
+
|
9
|
+
# the entry from the qb metadata for this option
|
10
|
+
attr_reader :meta
|
11
|
+
|
12
|
+
# array of strings representing how this option was included
|
13
|
+
# empty for top-level options
|
14
|
+
attr_reader :include_path
|
15
|
+
|
16
|
+
# the name of the option in the qb metadata, equal to #meta['name']
|
17
|
+
attr_reader :meta_name
|
18
|
+
|
19
|
+
# the name that this option will be available in the cli as
|
20
|
+
attr_reader :cli_name
|
21
|
+
|
22
|
+
# the name that the value will be passed to ansible as
|
23
|
+
attr_reader :var_name
|
24
|
+
|
25
|
+
# the value of the option, or `nil` if we never assign one
|
26
|
+
attr_accessor :value
|
27
|
+
|
28
|
+
def initialize role, meta, include_path
|
29
|
+
# @role = WeakRef.new role
|
30
|
+
@meta = meta
|
31
|
+
@include_path = include_path
|
32
|
+
|
33
|
+
@meta_name = meta.fetch 'name'
|
34
|
+
|
35
|
+
@cli_name = if @include_path.empty?
|
36
|
+
Options.cli_ize_name @meta_name
|
37
|
+
else
|
38
|
+
Options.cli_ize_name "#{ @include_path.join('-') }-#{ @meta_name }"
|
39
|
+
end
|
40
|
+
|
41
|
+
@var_name = if role.var_prefix
|
42
|
+
Options.var_ize_name "#{ role.var_prefix }_#{ @meta_name }"
|
43
|
+
else
|
44
|
+
Options.var_ize_name @meta_name
|
45
|
+
end
|
46
|
+
|
47
|
+
@value = nil
|
48
|
+
end
|
49
|
+
|
50
|
+
# if the option is required in the cli
|
51
|
+
def required?
|
52
|
+
!!meta_or(['required', 'require'], false)
|
53
|
+
end
|
54
|
+
|
55
|
+
# if we should save the option value in .qb-options.yml
|
56
|
+
def save?
|
57
|
+
!!meta_or('save', true)
|
58
|
+
end
|
59
|
+
|
60
|
+
def description
|
61
|
+
value = meta_or 'description',
|
62
|
+
"set the #{ @var_name } role variable"
|
63
|
+
|
64
|
+
if @meta['type'].is_a?(Hash) && @meta['type'].key?('one_of')
|
65
|
+
line_break = "\n" + "\t" * 5
|
66
|
+
value += " options:" +
|
67
|
+
"#{ line_break }#{ @meta['type']['one_of'].join(line_break) }"
|
68
|
+
end
|
69
|
+
|
70
|
+
value
|
71
|
+
end
|
72
|
+
|
73
|
+
def boolean?
|
74
|
+
['boolean', 'bool'].include? meta['type'].downcase
|
75
|
+
end
|
76
|
+
|
77
|
+
def usage
|
78
|
+
if boolean?
|
79
|
+
"--[no-]#{ option.cli_name }"
|
80
|
+
else
|
81
|
+
"--#{ cli_name }=#{ meta_name.upcase }"
|
82
|
+
end
|
83
|
+
end
|
84
|
+
|
85
|
+
private
|
86
|
+
|
87
|
+
# get the value at the first found of the keys or the default.
|
88
|
+
#
|
89
|
+
# `nil` (`null` in yaml files) are treated like they're not there at
|
90
|
+
# all. you need to use `false` if you want to tell QB not to do something.
|
91
|
+
#
|
92
|
+
def meta_or keys, default
|
93
|
+
keys = [keys] if keys.is_a? String
|
94
|
+
keys.each do |key|
|
95
|
+
if meta.key?(key) && !meta[key].nil?
|
96
|
+
return meta[key]
|
97
|
+
end
|
98
|
+
end
|
99
|
+
default
|
100
|
+
end
|
101
|
+
|
102
|
+
end # Option
|
103
|
+
end # Options
|
104
|
+
end # QB
|
data/lib/qb/role.rb
CHANGED
@@ -113,6 +113,38 @@ module QB
|
|
113
113
|
role
|
114
114
|
end
|
115
115
|
|
116
|
+
# get the include path for an included role based on the
|
117
|
+
# option metadata that defines the include and the current
|
118
|
+
# include path.
|
119
|
+
#
|
120
|
+
# @param role [Role]
|
121
|
+
# the role to include.
|
122
|
+
#
|
123
|
+
# @param option_meta [Hash]
|
124
|
+
# the entry for the option in qb.yml
|
125
|
+
#
|
126
|
+
# @param current_include_path [Array<string>]
|
127
|
+
#
|
128
|
+
# @return [Array<string>]
|
129
|
+
# include path for the included role.
|
130
|
+
#
|
131
|
+
def self.get_include_path role, option_meta, current_include_path
|
132
|
+
new_include_path = if option_meta.key? 'as'
|
133
|
+
case option_meta['as']
|
134
|
+
when nil, false
|
135
|
+
# include it in with the parent role's options
|
136
|
+
current_include_path
|
137
|
+
when String
|
138
|
+
current_include_path + [option_meta['as']]
|
139
|
+
else
|
140
|
+
raise MetadataError.new,
|
141
|
+
"bad 'as' value: #{ option_meta.inspect }"
|
142
|
+
end
|
143
|
+
else
|
144
|
+
current_include_path + [role.namespaceless]
|
145
|
+
end
|
146
|
+
end
|
147
|
+
|
116
148
|
# instance methods
|
117
149
|
# ================
|
118
150
|
|
@@ -187,12 +219,22 @@ module QB
|
|
187
219
|
end
|
188
220
|
|
189
221
|
# get the options from the metadata, defaulting to [] if none defined
|
190
|
-
def
|
222
|
+
def option_metas
|
191
223
|
meta_or ['options', 'opts', 'vars'], []
|
192
224
|
end
|
193
225
|
|
194
|
-
#
|
195
|
-
|
226
|
+
# get an array of Option for the role, including any included roles
|
227
|
+
def options include_path = []
|
228
|
+
option_metas.map {|option_meta|
|
229
|
+
if option_meta.key? 'include'
|
230
|
+
role_name = option_meta['include']
|
231
|
+
role = QB::Role.require role_name
|
232
|
+
role.options Role.get_include_path(role, option_meta, include_path)
|
233
|
+
else
|
234
|
+
QB::Options::Option.new self, option_meta, include_path
|
235
|
+
end
|
236
|
+
}.flatten
|
237
|
+
end
|
196
238
|
|
197
239
|
# loads the defaults from vars/main.yml and defaults/main.yml,
|
198
240
|
# caching by default. vars override defaults values.
|
@@ -235,6 +277,17 @@ module QB
|
|
235
277
|
!!meta_or('mkdir', true)
|
236
278
|
end
|
237
279
|
|
280
|
+
def usage
|
281
|
+
parts = ['qb', name]
|
282
|
+
options.each {|option|
|
283
|
+
if option.required?
|
284
|
+
parts << option.usage
|
285
|
+
end
|
286
|
+
}
|
287
|
+
parts << '[OPTIONS] DIRECTORY'
|
288
|
+
parts.join(' ')
|
289
|
+
end
|
290
|
+
|
238
291
|
# get the CLI banner for the role
|
239
292
|
def banner
|
240
293
|
lines = []
|
@@ -248,7 +301,8 @@ module QB
|
|
248
301
|
lines << ''
|
249
302
|
end
|
250
303
|
lines << 'usage:'
|
251
|
-
lines << " qb #{ name } [OPTIONS] DIRECTORY"
|
304
|
+
# lines << " qb #{ name } [OPTIONS] DIRECTORY"
|
305
|
+
lines << " #{ usage }"
|
252
306
|
lines << ''
|
253
307
|
lines << 'options:'
|
254
308
|
|
@@ -270,6 +324,6 @@ module QB
|
|
270
324
|
end
|
271
325
|
end
|
272
326
|
default
|
273
|
-
end
|
274
|
-
end
|
275
|
-
end
|
327
|
+
end # meta_or
|
328
|
+
end # Role
|
329
|
+
end # QB
|
data/lib/qb/version.rb
CHANGED
@@ -29,17 +29,6 @@ options:
|
|
29
29
|
description: the repo owner
|
30
30
|
short: o
|
31
31
|
|
32
|
-
- name: dest_dir
|
33
|
-
type: string
|
34
|
-
description: qb_dir relative dir to put the submodule in under it's name.
|
35
|
-
short: d
|
36
|
-
|
37
|
-
- name: dest_path
|
38
|
-
type: string
|
39
|
-
description: >
|
40
|
-
qb_dir relative path to put the submodule at. supercedes dest_dir.
|
41
|
-
short: p
|
42
|
-
|
43
32
|
- name: create
|
44
33
|
type: boolean
|
45
34
|
description: create a new npm package to hack
|
@@ -16,7 +16,7 @@
|
|
16
16
|
|
17
17
|
vars = {}
|
18
18
|
|
19
|
-
# get the root of the git
|
19
|
+
# get the root of the git repo that we're operating from
|
20
20
|
Dir.chdir qb_cwd do
|
21
21
|
begin
|
22
22
|
vars['repo_root'] = Cmds.out!('git rev-parse --show-toplevel').strip
|
@@ -38,6 +38,14 @@
|
|
38
38
|
|
39
39
|
vars
|
40
40
|
|
41
|
+
# - debug:
|
42
|
+
# msg:
|
43
|
+
# repo_root: "{{ hack_npm_repo_root }}"
|
44
|
+
# rel_dir: "{{ hack_npm_rel_dir }}"
|
45
|
+
#
|
46
|
+
# - fail:
|
47
|
+
# msg: HERE
|
48
|
+
|
41
49
|
- include: create.yml
|
42
50
|
when: hack_npm_create
|
43
51
|
|
@@ -47,28 +55,28 @@
|
|
47
55
|
git@github.com:{{ hack_npm_owner }}/{{ hack_npm_name }}.git
|
48
56
|
{{ hack_npm_rel_dir }}
|
49
57
|
args:
|
50
|
-
chdir: "{{
|
58
|
+
chdir: "{{ hack_npm_repo_root }}"
|
51
59
|
creates: "{{ qb_dir }}"
|
52
60
|
|
53
|
-
- name: add linking to dev/setup.yml
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
61
|
+
# - name: add linking to dev/setup.yml
|
62
|
+
# # - name: npm link nrser.js for jash so it can build
|
63
|
+
# # tags:
|
64
|
+
# # - npm-link
|
65
|
+
# # command: npm link ../nrser.js
|
66
|
+
# # args:
|
67
|
+
# # chdir: "{{ dev_setup_project_root }}/packages/{{ item }}"
|
68
|
+
# # with_items:
|
69
|
+
# # - jash
|
70
|
+
# state:
|
71
|
+
# debug: w
|
72
|
+
# yaml:
|
73
|
+
# key: "{{ qb_cwd }}/dev/setup.yml:0:tasks"
|
74
|
+
# array_contains:
|
75
|
+
# name: "npm link {{ hack_npm_rel_dir }}"
|
76
|
+
# tags:
|
77
|
+
# - npm-link
|
78
|
+
# command: "npm link {{ hack_npm_rel_dir }}"
|
79
|
+
# args:
|
80
|
+
# chdir: "{{ '{{ dev_setup_project_root }}' }}"
|
81
|
+
# create: true
|
74
82
|
|
@@ -2,8 +2,6 @@
|
|
2
2
|
# vars file for qb.hack_npm
|
3
3
|
hack_npm_name: "{{ qb_dir | basename }}"
|
4
4
|
hack_npm_owner: "{{ git_user_name }}"
|
5
|
-
# hack_npm_dest_dir: "{{ qb_dir }}/dev/packages"
|
6
|
-
# hack_npm_dest_path: "{{ hack_npm_dest_dir }}/{{ hack_npm_name }}"
|
7
5
|
hack_npm_create: false
|
8
6
|
|
9
7
|
# overrides
|
@@ -13,5 +13,6 @@ npm_package_main: "index.js"
|
|
13
13
|
npm_package_keywords: []
|
14
14
|
npm_package_license: "{{ 'UNLICENSED' if npm_package_private else 'ISC' }}"
|
15
15
|
npm_package_author: "{{ npm_package_scope if npm_package_scope else git_user_name }}"
|
16
|
+
npm_package_scripts: {}
|
16
17
|
|
17
18
|
npm_package_project: false
|
@@ -24,4 +24,12 @@
|
|
24
24
|
main: "{{ npm_package_main }}"
|
25
25
|
keywords: "{{ npm_package_keywords | to_json }}"
|
26
26
|
license: "{{ npm_package_license }}"
|
27
|
-
author: "{{ npm_package_author }}"
|
27
|
+
author: "{{ npm_package_author }}"
|
28
|
+
|
29
|
+
- name: set package.json scripts
|
30
|
+
state:
|
31
|
+
json:
|
32
|
+
key: "{{ npm_package_json_path }}:scripts:{{ item.key }}"
|
33
|
+
set: "{{ item.value }}"
|
34
|
+
create: true
|
35
|
+
with_dict: "{{ npm_package_scripts }}"
|
@@ -0,0 +1,69 @@
|
|
1
|
+
{
|
2
|
+
"passPerPreset": true,
|
3
|
+
|
4
|
+
"presets": [
|
5
|
+
"stage-2",
|
6
|
+
"react",
|
7
|
+
"es2015"
|
8
|
+
],
|
9
|
+
|
10
|
+
"env": {
|
11
|
+
"development": {
|
12
|
+
"plugins": [
|
13
|
+
["metalog", {
|
14
|
+
"strip": {
|
15
|
+
"labels": {
|
16
|
+
"trace": false
|
17
|
+
}
|
18
|
+
},
|
19
|
+
"extraLabels": [
|
20
|
+
"errorRefs",
|
21
|
+
"warnRefs",
|
22
|
+
"infoRefs",
|
23
|
+
"debugRefs",
|
24
|
+
"traceRefs",
|
25
|
+
"notif",
|
26
|
+
"errorNotif",
|
27
|
+
"warnNotif",
|
28
|
+
"infoNotif",
|
29
|
+
"debugNotif",
|
30
|
+
"traceNotif"
|
31
|
+
]
|
32
|
+
}],
|
33
|
+
"syntax-flow",
|
34
|
+
"transform-export-extensions",
|
35
|
+
["tcomb", {
|
36
|
+
"skipAsserts": true
|
37
|
+
}],
|
38
|
+
"transform-flow-strip-types"
|
39
|
+
]
|
40
|
+
},
|
41
|
+
|
42
|
+
"production": {
|
43
|
+
"plugins": [
|
44
|
+
["metalog", {
|
45
|
+
"strip": true,
|
46
|
+
"extraLabels": [
|
47
|
+
"errorRefs",
|
48
|
+
"warnRefs",
|
49
|
+
"infoRefs",
|
50
|
+
"debugRefs",
|
51
|
+
"traceRefs",
|
52
|
+
"notif",
|
53
|
+
"errorNotif",
|
54
|
+
"warnNotif",
|
55
|
+
"infoNotif",
|
56
|
+
"debugNotif",
|
57
|
+
"traceNotif"
|
58
|
+
]
|
59
|
+
}],
|
60
|
+
"syntax-flow",
|
61
|
+
"transform-export-extensions",
|
62
|
+
["tcomb", {
|
63
|
+
"skipAsserts": true
|
64
|
+
}],
|
65
|
+
"transform-flow-strip-types"
|
66
|
+
]
|
67
|
+
}
|
68
|
+
}
|
69
|
+
}
|
File without changes
|
@@ -0,0 +1,17 @@
|
|
1
|
+
---
|
2
|
+
# meta file for nrser.js
|
3
|
+
|
4
|
+
allow_duplicates: yes
|
5
|
+
|
6
|
+
dependencies:
|
7
|
+
- role: nrser.state_mate
|
8
|
+
|
9
|
+
- role: qb.npm_package
|
10
|
+
|
11
|
+
- role: qb.npm_package
|
12
|
+
npm_package_main: lib/index.js
|
13
|
+
npm_package_scripts:
|
14
|
+
clean: gulp clean
|
15
|
+
build: "npm run clean && gulp babel"
|
16
|
+
test: "npm run build && gulp mocha"
|
17
|
+
watch: "npm run clean && gulp babel && gulp watch"
|
@@ -0,0 +1,47 @@
|
|
1
|
+
---
|
2
|
+
# meta/qb.yml file for nrser.js
|
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: null
|
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
|
45
|
+
|
46
|
+
- include: qb.npm_package
|
47
|
+
as: package
|
@@ -0,0 +1,63 @@
|
|
1
|
+
---
|
2
|
+
# tasks file for nrser.js
|
3
|
+
|
4
|
+
- name: add deps to package.json
|
5
|
+
state:
|
6
|
+
json:
|
7
|
+
key: "{{ npm_package_json_path }}:dependencies:{{ item.key }}"
|
8
|
+
set: "{{ item.value }}"
|
9
|
+
create: true
|
10
|
+
with_dict: "{{ nrser_js_deps }}"
|
11
|
+
|
12
|
+
- name: add dev deps to package.json
|
13
|
+
state:
|
14
|
+
json:
|
15
|
+
key: "{{ npm_package_json_path }}:devDependencies:{{ item.key }}"
|
16
|
+
set: "{{ item.value }}"
|
17
|
+
create: true
|
18
|
+
with_dict: "{{ nrser_js_dev_deps }}"
|
19
|
+
|
20
|
+
- name: "create {{ item }} dir"
|
21
|
+
file:
|
22
|
+
dest: "{{ qb_dir }}/{{ item }}"
|
23
|
+
state: directory
|
24
|
+
with_items:
|
25
|
+
- src
|
26
|
+
- test/src
|
27
|
+
|
28
|
+
- name: "create {{ item }} file"
|
29
|
+
copy:
|
30
|
+
dest: "{{ qb_dir }}/{{ item }}"
|
31
|
+
content: ''
|
32
|
+
with_items:
|
33
|
+
- src/index.js
|
34
|
+
- test/src/index.tests.js
|
35
|
+
|
36
|
+
- name: add .babelrc
|
37
|
+
copy:
|
38
|
+
src: .babelrc
|
39
|
+
dest: "{{ qb_dir }}/.babelrc"
|
40
|
+
|
41
|
+
- name: add ughfile.js
|
42
|
+
copy:
|
43
|
+
src: ughfile.js
|
44
|
+
dest: "{{ qb_dir }}/ughfile.js"
|
45
|
+
|
46
|
+
- name: add gulpfile.js
|
47
|
+
copy:
|
48
|
+
src: gulpfile.js
|
49
|
+
dest: "{{ qb_dir }}/gulpfile.js"
|
50
|
+
|
51
|
+
- name: flow init
|
52
|
+
command: node_modules/.bin/flow init
|
53
|
+
args:
|
54
|
+
chdir: "{{ qb_dir }}"
|
55
|
+
creates: "{{ qb_dir }}/.flowconfig"
|
56
|
+
|
57
|
+
- name: "ignore {{ item }}"
|
58
|
+
lineinfile:
|
59
|
+
line: "{{ item }}"
|
60
|
+
dest: "{{ qb_dir }}/.gitignore"
|
61
|
+
with_items:
|
62
|
+
- /lib
|
63
|
+
- /test/lib
|
@@ -0,0 +1,28 @@
|
|
1
|
+
---
|
2
|
+
# vars file for nrser.js
|
3
|
+
|
4
|
+
nrser_js_deps:
|
5
|
+
lodash: "^3.1.0"
|
6
|
+
nrser: "^0.2.1"
|
7
|
+
tcomb: "^3.2.13"
|
8
|
+
|
9
|
+
nrser_js_dev_deps:
|
10
|
+
babel-cli: "^6.14.0"
|
11
|
+
babel-core: "^6.14.0"
|
12
|
+
babel-plugin-metalog: "^0.1.0"
|
13
|
+
babel-plugin-tcomb: "^0.3.13"
|
14
|
+
babel-plugin-transform-export-extensions: "^6.8.0"
|
15
|
+
babel-polyfill: "^6.13.0"
|
16
|
+
babel-preset-es2015: "^6.14.0"
|
17
|
+
babel-preset-react: "^6.11.1"
|
18
|
+
babel-preset-stage-2: "^6.17.0"
|
19
|
+
chai: "^3.5.0"
|
20
|
+
flow-bin: "^0.32.0"
|
21
|
+
gulp: "^3.9.1"
|
22
|
+
gulp-babel: "^6.1.2"
|
23
|
+
gulp-spawn-mocha: "^3.1.0"
|
24
|
+
gulp-util: "^3.0.7"
|
25
|
+
istanbul: "^0.4.5"
|
26
|
+
kexec: "^3.0.0"
|
27
|
+
mocha: "^3.1.2"
|
28
|
+
node-notifier: "^4.6.1"
|
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.24
|
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-28 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -142,6 +142,7 @@ files:
|
|
142
142
|
- exe/qb
|
143
143
|
- lib/qb.rb
|
144
144
|
- lib/qb/options.rb
|
145
|
+
- lib/qb/options/option.rb
|
145
146
|
- lib/qb/role.rb
|
146
147
|
- lib/qb/version.rb
|
147
148
|
- library/git_mkdir.py
|
@@ -478,6 +479,15 @@ files:
|
|
478
479
|
- roles/qb.npm_package/meta/main.yml
|
479
480
|
- roles/qb.npm_package/meta/qb.yml
|
480
481
|
- roles/qb.npm_package/tasks/main.yml
|
482
|
+
- roles/qb.nrser_js/.qb-options.yml
|
483
|
+
- roles/qb.nrser_js/files/.babelrc
|
484
|
+
- roles/qb.nrser_js/files/.gitkeep
|
485
|
+
- roles/qb.nrser_js/files/gulpfile.js
|
486
|
+
- roles/qb.nrser_js/files/ughfile.js
|
487
|
+
- roles/qb.nrser_js/meta/main.yml
|
488
|
+
- roles/qb.nrser_js/meta/qb.yml
|
489
|
+
- roles/qb.nrser_js/tasks/main.yml
|
490
|
+
- roles/qb.nrser_js/vars/main.yml
|
481
491
|
- roles/qb.project/.qb-options.yml
|
482
492
|
- roles/qb.project/defaults/main.yml
|
483
493
|
- roles/qb.project/files/ansible.cfg
|