qb 0.1.60 → 0.1.61
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 +6 -6
- data/lib/qb/role.rb +20 -33
- data/lib/qb/role/errors.rb +30 -0
- data/lib/qb/version.rb +1 -1
- data/library/path_facts +304 -0
- data/plugins/lookup_plugins/every.py +165 -0
- data/roles/qb.facts/defaults/main.yml +3 -0
- data/roles/{qb.yarn → qb.facts}/meta/main.yml +1 -1
- data/roles/{qb.yarn → qb.facts}/meta/qb.yml +21 -26
- data/roles/qb.facts/tasks/main.yml +10 -0
- data/roles/qb.git_repo/defaults/main.yml +1 -0
- data/roles/qb.git_repo/meta/main.yml +1 -9
- data/roles/qb.git_repo/tasks/main.yml +26 -1
- data/roles/qb.qb_role/templates/qb.yml.j2 +8 -0
- data/roles/qb.role/defaults/main.yml +1 -1
- data/roles/qb.role/tasks/main.yml +1 -1
- data/roles/qb.yarn_release/defaults/main.yml +4 -0
- data/roles/{qb.release_yarn → qb.yarn_release}/meta/main.yml +1 -1
- data/roles/{qb.release_yarn → qb.yarn_release}/meta/qb.yml +1 -1
- data/roles/qb.yarn_release/tasks/main.yml +73 -0
- data/roles/qb.yarn_setup/defaults/main.yml +11 -0
- data/roles/qb.yarn_setup/meta/main.yml +8 -0
- data/roles/qb.yarn_setup/meta/qb.yml +100 -0
- data/roles/qb.yarn_setup/tasks/distribution/MacOSX/brew_create.yml +59 -0
- data/roles/qb.yarn_setup/tasks/distribution/MacOSX/main.yml +42 -0
- data/roles/qb.yarn_setup/tasks/main.yml +11 -0
- data/roles/qb.yarn_setup/templates/yarn@M.m.p.rb.j2 +22 -0
- metadata +20 -12
- data/lib/qb/options/errors.rb +0 -11
- data/roles/qb.release_yarn/defaults/main.yml +0 -4
- data/roles/qb.release_yarn/tasks/main.yml +0 -73
- data/roles/qb.yarn/defaults/main.yml +0 -5
- data/roles/qb.yarn/tasks/distribution/MacOSX.yml +0 -7
- data/roles/qb.yarn/tasks/main.yml +0 -11
@@ -0,0 +1,100 @@
|
|
1
|
+
---
|
2
|
+
# meta/qb.yml file for qb.yarn_setup
|
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: >-
|
9
|
+
Install and configure Yarn package manager (for Node).
|
10
|
+
|
11
|
+
# prefix for role variables
|
12
|
+
var_prefix: null
|
13
|
+
|
14
|
+
# how to get a default for `dir` if it's not provided as the only
|
15
|
+
# positional argument. if a positional argument is provided it will
|
16
|
+
# override the method defined here.
|
17
|
+
#
|
18
|
+
# options:
|
19
|
+
#
|
20
|
+
# - null
|
21
|
+
# - require the value on the command line.
|
22
|
+
# - false
|
23
|
+
# - don't provide qb_dir (means doesn't load or save options either).
|
24
|
+
# - git_root
|
25
|
+
# - use the git root fof the directory that the `qb` command is invoked
|
26
|
+
# from. useful for 'project-centric' commands so they can be invoked
|
27
|
+
# from anywhere in the repo.
|
28
|
+
# - cwd
|
29
|
+
# - use the directory the `qb` command is invoked form.
|
30
|
+
# - {exe: PATH}
|
31
|
+
# - invoke an execuable, passing a JSON serialization of the options
|
32
|
+
# mapping their CLI names to values. path can be relative to role
|
33
|
+
# directory.
|
34
|
+
# - {find_up: FILENAME}
|
35
|
+
# - starting at the current direcotry and climbing up to parent
|
36
|
+
# directories, use the first one that contains FILENAME. error
|
37
|
+
# if none is found.
|
38
|
+
default_dir: false
|
39
|
+
|
40
|
+
# default user to become for play
|
41
|
+
default_user: null
|
42
|
+
|
43
|
+
# set to false to not save options in .qb-options.yml files
|
44
|
+
save_options: false
|
45
|
+
|
46
|
+
# options to pass to ansible-playbook
|
47
|
+
ansible_options: {}
|
48
|
+
|
49
|
+
options:
|
50
|
+
# - name: example
|
51
|
+
# description: an example of a variable.
|
52
|
+
# required: false
|
53
|
+
# type: boolean # boolean (default) | string
|
54
|
+
# short: e
|
55
|
+
- name: version
|
56
|
+
description: Version to install. If missing installs latest stable.
|
57
|
+
type: string
|
58
|
+
short: v
|
59
|
+
|
60
|
+
- name: state
|
61
|
+
description: >-
|
62
|
+
`present` to install, `absent` to uninstall. `unlinked` should work.
|
63
|
+
Not sure what `head` will do. We handle linking with separate `brew_link`
|
64
|
+
option.
|
65
|
+
see:
|
66
|
+
- http://docs.ansible.com/ansible/homebrew_module.html
|
67
|
+
short: s
|
68
|
+
type:
|
69
|
+
one_of:
|
70
|
+
- present
|
71
|
+
- absent
|
72
|
+
- latest
|
73
|
+
- head
|
74
|
+
- unlinked
|
75
|
+
|
76
|
+
- name: brew_link
|
77
|
+
description: >-
|
78
|
+
When installing on OSX (which uses Homebrew) link the installed packages.
|
79
|
+
type: boolean
|
80
|
+
|
81
|
+
- name: force
|
82
|
+
description: >-
|
83
|
+
Force write operations.
|
84
|
+
short: f
|
85
|
+
type: boolean
|
86
|
+
|
87
|
+
- name: brew_create
|
88
|
+
description: >-
|
89
|
+
On OSX create a Homebrew formula to install the desired version if no
|
90
|
+
formula is found.
|
91
|
+
type: boolean
|
92
|
+
|
93
|
+
- name: brew_tap
|
94
|
+
description: >-
|
95
|
+
The Homebrew Tap (repo) to use on OSX when creating a new formula for the
|
96
|
+
Yarn version.
|
97
|
+
short: t
|
98
|
+
type: string
|
99
|
+
|
100
|
+
|
@@ -0,0 +1,59 @@
|
|
1
|
+
# Create a Homebrew formula for a version of Yarn so we can install it.
|
2
|
+
|
3
|
+
- name: >-
|
4
|
+
Tap {{ yarn_setup_brew_tap }} in Homebrew
|
5
|
+
homebrew_tap:
|
6
|
+
name: "{{ yarn_setup_brew_tap }}"
|
7
|
+
|
8
|
+
- name: >-
|
9
|
+
Get location of {{ yarn_setup_brew_tap }}
|
10
|
+
command: >-
|
11
|
+
brew --repo {{ yarn_setup_brew_tap }}
|
12
|
+
changed_when: false
|
13
|
+
register: yarn_setup_brew_tap_dir
|
14
|
+
|
15
|
+
- name: >-
|
16
|
+
The formula name is 'yarn@<version>'
|
17
|
+
set_fact:
|
18
|
+
yarn_setup_formula_name: "yarn@{{ yarn_setup_version }}"
|
19
|
+
|
20
|
+
- name: >-
|
21
|
+
The new formula path is '<brew_tap_dir>/Formula/<formula_name>.rb'
|
22
|
+
set_fact:
|
23
|
+
yarn_setup_formula_path: >-
|
24
|
+
{{ yarn_setup_brew_tap_dir.stdout }}/Formula/{{ yarn_setup_formula_name }}.rb
|
25
|
+
|
26
|
+
- name: >-
|
27
|
+
Template formula to {{ yarn_setup_formula_path }}
|
28
|
+
template:
|
29
|
+
src: yarn@M.m.p.rb.j2
|
30
|
+
dest: "{{ yarn_setup_formula_path }}"
|
31
|
+
force: "{{ yarn_setup_force }}"
|
32
|
+
|
33
|
+
- name: >-
|
34
|
+
Install new {{ yarn_setup_formula_name }} formula
|
35
|
+
homebrew:
|
36
|
+
name: "{{ yarn_setup_brew_name }}"
|
37
|
+
state: present
|
38
|
+
|
39
|
+
- name: >-
|
40
|
+
Add new formlua to {{ yarn_setup_brew_tap }} repo
|
41
|
+
command: >-
|
42
|
+
git add Formula/{{ yarn_setup_formula_name }}.rb
|
43
|
+
args:
|
44
|
+
chdir: "{{ yarn_setup_brew_tap_dir.stdout }}"
|
45
|
+
|
46
|
+
- name: >-
|
47
|
+
Commit new formula to {{ yarn_setup_brew_tap }}
|
48
|
+
command: >-
|
49
|
+
git commit -m "qb.yarn_setup added {{ yarn_setup_formula_name }} formula"
|
50
|
+
args:
|
51
|
+
chdir: "{{ yarn_setup_brew_tap_dir.stdout }}"
|
52
|
+
|
53
|
+
- name: >-
|
54
|
+
Push {{ yarn_setup_brew_tap }}
|
55
|
+
command: >-
|
56
|
+
git push origin master
|
57
|
+
args:
|
58
|
+
chdir: "{{ yarn_setup_brew_tap_dir.stdout }}"
|
59
|
+
|
@@ -0,0 +1,42 @@
|
|
1
|
+
---
|
2
|
+
- name: >-
|
3
|
+
homebrew_name is 'yarn' if no versions is specified,
|
4
|
+
else it is 'yarn@<version>'
|
5
|
+
set_fact:
|
6
|
+
yarn_setup_brew_name: >-
|
7
|
+
{% if yarn_setup_version -%}
|
8
|
+
yarn@{{ yarn_setup_version }}
|
9
|
+
{%- else -%}
|
10
|
+
yarn
|
11
|
+
{%- endif %}
|
12
|
+
|
13
|
+
- name: >-
|
14
|
+
can_brew_create is true when the brew_create option is true and the state
|
15
|
+
is either 'linked' or 'present'
|
16
|
+
set_fact:
|
17
|
+
yarn_setup_can_brew_create: >-
|
18
|
+
{{ yarn_setup_brew_create and yarn_setup_state == 'present' }}
|
19
|
+
|
20
|
+
- name: Manage Yarn installtion state on MacOSX via Homebrew
|
21
|
+
homebrew:
|
22
|
+
name: "{{ yarn_setup_brew_name }}"
|
23
|
+
state: "{{ yarn_setup_state }}"
|
24
|
+
update_homebrew: >-
|
25
|
+
{{ lookup('every', 'update_homebrew', days=1) }}
|
26
|
+
# ignore errors if we're in a config where we can create the formula
|
27
|
+
ignore_errors: "{{ yarn_setup_can_brew_create }}"
|
28
|
+
register: yarn_setup_brew_result
|
29
|
+
|
30
|
+
- name: Create Homebrew formula
|
31
|
+
when: >-
|
32
|
+
yarn_setup_brew_result.failed and yarn_setup_can_brew_create
|
33
|
+
include: "{{ role_path }}/tasks/distribution/MacOSX/brew_create.yml"
|
34
|
+
|
35
|
+
- name: Link Yarn in Homebrew
|
36
|
+
when: yarn_setup_brew_link
|
37
|
+
homebrew:
|
38
|
+
name: "{{ yarn_setup_brew_name }}"
|
39
|
+
state: linked
|
40
|
+
install_options:
|
41
|
+
- overwrite
|
42
|
+
|
@@ -0,0 +1,11 @@
|
|
1
|
+
---
|
2
|
+
# tasks file for qb.yarn_setup
|
3
|
+
|
4
|
+
- name: Manage Yarn installation on MacOSX
|
5
|
+
include: "{{ role_path }}/tasks/distribution/{{ ansible_distribution }}/main.yml"
|
6
|
+
|
7
|
+
- name: Add global Yarn packages
|
8
|
+
with_items: "{{ yarn_setup_global_packages }}"
|
9
|
+
stream:
|
10
|
+
cmd: "yarn global add {{ item }}"
|
11
|
+
|
@@ -0,0 +1,22 @@
|
|
1
|
+
class YarnAT{{ yarn_setup_version | regex_replace('\\D', '') }} < Formula
|
2
|
+
desc "JavaScript package manager"
|
3
|
+
homepage "https://yarnpkg.com/"
|
4
|
+
url "https://github.com/yarnpkg/yarn/releases/download/v{{ yarn_setup_version }}/yarn-v{{ yarn_setup_version }}.tar.gz"
|
5
|
+
head "https://github.com/yarnpkg/yarn.git"
|
6
|
+
|
7
|
+
bottle :unneeded
|
8
|
+
|
9
|
+
depends_on "node"
|
10
|
+
|
11
|
+
def install
|
12
|
+
libexec.install Dir["*"]
|
13
|
+
bin.install_symlink "#{libexec}/bin/yarn.js" => "yarn"
|
14
|
+
bin.install_symlink "#{libexec}/bin/yarn.js" => "yarnpkg"
|
15
|
+
inreplace "#{libexec}/package.json", '"installationMethod": "tar"', '"installationMethod": "homebrew"'
|
16
|
+
end
|
17
|
+
|
18
|
+
test do
|
19
|
+
(testpath/"package.json").write('{"name": "test"}')
|
20
|
+
system bin/"yarn", "add", "jquery"
|
21
|
+
end
|
22
|
+
end
|
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.61
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- nrser
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2017-05
|
11
|
+
date: 2017-06-05 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -182,13 +182,14 @@ files:
|
|
182
182
|
- lib/qb.rb
|
183
183
|
- lib/qb/ansible_module.rb
|
184
184
|
- lib/qb/options.rb
|
185
|
-
- lib/qb/options/errors.rb
|
186
185
|
- lib/qb/options/option.rb
|
187
186
|
- lib/qb/role.rb
|
187
|
+
- lib/qb/role/errors.rb
|
188
188
|
- lib/qb/util.rb
|
189
189
|
- lib/qb/util/stdio.rb
|
190
190
|
- lib/qb/version.rb
|
191
191
|
- library/git_mkdir.py
|
192
|
+
- library/path_facts
|
192
193
|
- library/qb_facts.py
|
193
194
|
- library/stream
|
194
195
|
- node_modules/.bin/semver
|
@@ -201,6 +202,7 @@ files:
|
|
201
202
|
- package.json
|
202
203
|
- plugins/filter_plugins/string.py
|
203
204
|
- plugins/filter_plugins/version.py
|
205
|
+
- plugins/lookup_plugins/every.py
|
204
206
|
- plugins/lookup_plugins/resolve.py
|
205
207
|
- qb.gemspec
|
206
208
|
- roles/nrser.blockinfile/CONTRIBUTING.md
|
@@ -318,6 +320,10 @@ files:
|
|
318
320
|
- roles/qb.bump/tasks/frontend/level/release.yml
|
319
321
|
- roles/qb.bump/tasks/frontend/main.yml
|
320
322
|
- roles/qb.bump/tasks/main.yml
|
323
|
+
- roles/qb.facts/defaults/main.yml
|
324
|
+
- roles/qb.facts/meta/main.yml
|
325
|
+
- roles/qb.facts/meta/qb.yml
|
326
|
+
- roles/qb.facts/tasks/main.yml
|
321
327
|
- roles/qb.gem/.qb-options.yml
|
322
328
|
- roles/qb.gem/defaults/main.yml
|
323
329
|
- roles/qb.gem/files/.gitkeep
|
@@ -598,10 +604,6 @@ files:
|
|
598
604
|
- roles/qb.release_gem/meta/main.yml
|
599
605
|
- roles/qb.release_gem/meta/qb.yml
|
600
606
|
- roles/qb.release_gem/tasks/main.yml
|
601
|
-
- roles/qb.release_yarn/defaults/main.yml
|
602
|
-
- roles/qb.release_yarn/meta/main.yml
|
603
|
-
- roles/qb.release_yarn/meta/qb.yml
|
604
|
-
- roles/qb.release_yarn/tasks/main.yml
|
605
607
|
- roles/qb.role/.qb-options.yml
|
606
608
|
- roles/qb.role/defaults/main.yml
|
607
609
|
- roles/qb.role/meta/main.yml
|
@@ -627,11 +629,17 @@ files:
|
|
627
629
|
- roles/qb.vars/meta/main.yml
|
628
630
|
- roles/qb.vars/meta/qb.yml
|
629
631
|
- roles/qb.vars/tasks/main.yml
|
630
|
-
- roles/qb.
|
631
|
-
- roles/qb.
|
632
|
-
- roles/qb.
|
633
|
-
- roles/qb.
|
634
|
-
- roles/qb.
|
632
|
+
- roles/qb.yarn_release/defaults/main.yml
|
633
|
+
- roles/qb.yarn_release/meta/main.yml
|
634
|
+
- roles/qb.yarn_release/meta/qb.yml
|
635
|
+
- roles/qb.yarn_release/tasks/main.yml
|
636
|
+
- roles/qb.yarn_setup/defaults/main.yml
|
637
|
+
- roles/qb.yarn_setup/meta/main.yml
|
638
|
+
- roles/qb.yarn_setup/meta/qb.yml
|
639
|
+
- roles/qb.yarn_setup/tasks/distribution/MacOSX/brew_create.yml
|
640
|
+
- roles/qb.yarn_setup/tasks/distribution/MacOSX/main.yml
|
641
|
+
- roles/qb.yarn_setup/tasks/main.yml
|
642
|
+
- roles/qb.yarn_setup/templates/yarn@M.m.p.rb.j2
|
635
643
|
homepage: https://github.com/nrser/qb
|
636
644
|
licenses:
|
637
645
|
- MIT
|
data/lib/qb/options/errors.rb
DELETED
@@ -1,73 +0,0 @@
|
|
1
|
-
---
|
2
|
-
# tasks file for qb.release_yarn
|
3
|
-
|
4
|
-
- name: load package.json
|
5
|
-
include_vars:
|
6
|
-
file: "{{ release_yarn_package_dir }}/package.json"
|
7
|
-
name: release_yarn_package_json
|
8
|
-
|
9
|
-
- name: get current version
|
10
|
-
set_fact:
|
11
|
-
release_yarn_current_version: "{{ release_yarn_package_json.version }}"
|
12
|
-
|
13
|
-
- name: create release version
|
14
|
-
set_fact:
|
15
|
-
release_yarn_release_version: >-
|
16
|
-
{{ release_yarn_current_version | semver_inc(release_yarn_level) }}
|
17
|
-
|
18
|
-
- name: >
|
19
|
-
increment to version {{ release_yarn_release_version }}
|
20
|
-
and create the git tag
|
21
|
-
command: "yarn version --new-version={{ release_yarn_release_version }}"
|
22
|
-
args:
|
23
|
-
chdir: "{{ release_yarn_package_dir }}"
|
24
|
-
|
25
|
-
- name: >
|
26
|
-
git push the v{{ release_yarn_release_version }} tag
|
27
|
-
command: "git push origin v{{ release_yarn_release_version }}"
|
28
|
-
args:
|
29
|
-
chdir: "{{ release_yarn_package_dir }}"
|
30
|
-
|
31
|
-
- name: >
|
32
|
-
npm publish v{{ release_yarn_release_version }}
|
33
|
-
command: npm publish
|
34
|
-
args:
|
35
|
-
chdir: "{{ release_yarn_package_dir }}"
|
36
|
-
|
37
|
-
- name: create the next -dev version
|
38
|
-
set_fact:
|
39
|
-
release_yarn_next_version: "{{
|
40
|
-
release_yarn_release_version | semver_inc(
|
41
|
-
level='prerelease',
|
42
|
-
preid='dev'
|
43
|
-
)
|
44
|
-
}}"
|
45
|
-
|
46
|
-
- name: >
|
47
|
-
increment to {{ release_yarn_next_version }} version
|
48
|
-
command: >
|
49
|
-
yarn version
|
50
|
-
--new-version={{ release_yarn_next_version }}
|
51
|
-
--no-git-tag-version
|
52
|
-
args:
|
53
|
-
chdir: "{{ release_yarn_package_dir }}"
|
54
|
-
|
55
|
-
- name: git add package.json
|
56
|
-
command: git add package.json
|
57
|
-
args:
|
58
|
-
chdir: "{{ release_yarn_package_dir }}"
|
59
|
-
|
60
|
-
- name: >
|
61
|
-
git commit next dev version
|
62
|
-
command: git commit -m "start {{ release_yarn_next_version }}"
|
63
|
-
args:
|
64
|
-
chdir: "{{ release_yarn_package_dir }}"
|
65
|
-
|
66
|
-
- name: git push next dev version
|
67
|
-
command: git push
|
68
|
-
args:
|
69
|
-
chdir: "{{ release_yarn_package_dir }}"
|
70
|
-
|
71
|
-
- debug:
|
72
|
-
msg: >
|
73
|
-
v{{ release_yarn_release_version }} released.
|