qb 0.1.60 → 0.1.61
Sign up to get free protection for your applications and to get access to all the features.
- 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.
|