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.
Files changed (35) hide show
  1. checksums.yaml +4 -4
  2. data/lib/qb/options.rb +6 -6
  3. data/lib/qb/role.rb +20 -33
  4. data/lib/qb/role/errors.rb +30 -0
  5. data/lib/qb/version.rb +1 -1
  6. data/library/path_facts +304 -0
  7. data/plugins/lookup_plugins/every.py +165 -0
  8. data/roles/qb.facts/defaults/main.yml +3 -0
  9. data/roles/{qb.yarn → qb.facts}/meta/main.yml +1 -1
  10. data/roles/{qb.yarn → qb.facts}/meta/qb.yml +21 -26
  11. data/roles/qb.facts/tasks/main.yml +10 -0
  12. data/roles/qb.git_repo/defaults/main.yml +1 -0
  13. data/roles/qb.git_repo/meta/main.yml +1 -9
  14. data/roles/qb.git_repo/tasks/main.yml +26 -1
  15. data/roles/qb.qb_role/templates/qb.yml.j2 +8 -0
  16. data/roles/qb.role/defaults/main.yml +1 -1
  17. data/roles/qb.role/tasks/main.yml +1 -1
  18. data/roles/qb.yarn_release/defaults/main.yml +4 -0
  19. data/roles/{qb.release_yarn → qb.yarn_release}/meta/main.yml +1 -1
  20. data/roles/{qb.release_yarn → qb.yarn_release}/meta/qb.yml +1 -1
  21. data/roles/qb.yarn_release/tasks/main.yml +73 -0
  22. data/roles/qb.yarn_setup/defaults/main.yml +11 -0
  23. data/roles/qb.yarn_setup/meta/main.yml +8 -0
  24. data/roles/qb.yarn_setup/meta/qb.yml +100 -0
  25. data/roles/qb.yarn_setup/tasks/distribution/MacOSX/brew_create.yml +59 -0
  26. data/roles/qb.yarn_setup/tasks/distribution/MacOSX/main.yml +42 -0
  27. data/roles/qb.yarn_setup/tasks/main.yml +11 -0
  28. data/roles/qb.yarn_setup/templates/yarn@M.m.p.rb.j2 +22 -0
  29. metadata +20 -12
  30. data/lib/qb/options/errors.rb +0 -11
  31. data/roles/qb.release_yarn/defaults/main.yml +0 -4
  32. data/roles/qb.release_yarn/tasks/main.yml +0 -73
  33. data/roles/qb.yarn/defaults/main.yml +0 -5
  34. data/roles/qb.yarn/tasks/distribution/MacOSX.yml +0 -7
  35. data/roles/qb.yarn/tasks/main.yml +0 -11
@@ -0,0 +1,8 @@
1
+ ---
2
+ # meta file for qb.yarn_setup
3
+
4
+ allow_duplicates: yes
5
+
6
+ dependencies: []
7
+ # - role: role-name
8
+
@@ -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.60
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-18 00:00:00.000000000 Z
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.yarn/defaults/main.yml
631
- - roles/qb.yarn/meta/main.yml
632
- - roles/qb.yarn/meta/qb.yml
633
- - roles/qb.yarn/tasks/distribution/MacOSX.yml
634
- - roles/qb.yarn/tasks/main.yml
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
@@ -1,11 +0,0 @@
1
- module QB
2
- class Options
3
- # base for errors in the module, extends QB:Error
4
- class Error < QB::Error
5
- end
6
-
7
- # raised when there's bad option metadata
8
- class MetadataError < Error
9
- end
10
- end # Options
11
- end # QB
@@ -1,4 +0,0 @@
1
- ---
2
- # defaults file for qb.release_yarn
3
- release_yarn_level: patch
4
- release_yarn_package_dir: "{{ qb_dir }}"
@@ -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.
@@ -1,5 +0,0 @@
1
- ---
2
- # defaults file for qb.yarn
3
- yarn_version: null
4
- yarn_homebrew_name: yarn
5
- yarn_state: present
@@ -1,7 +0,0 @@
1
- ---
2
- - name: manage state on OSX via homebrew
3
- homebrew:
4
- name: "{{ yarn_setup_homebrew_name }}"
5
- state: "{{ yarn_setup_state }}"
6
- update_homebrew: "{{ update_homebrew | default(False) }}"
7
-
@@ -1,11 +0,0 @@
1
- ---
2
- # tasks file for qb.yarn
3
-
4
- - name: manage yarn installation
5
- include: "distribution/{{ ansible_distribution }}.yml"
6
-
7
- - name: add global packages
8
- with_items: "{{ yarn_global_packages }}"
9
- stream:
10
- cmd: "yarn global add {{ item }}"
11
-