qb 0.3.1 → 0.3.2
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/exe/qb +39 -1
- data/lib/qb/cli.rb +104 -1
- data/lib/qb/errors.rb +25 -2
- data/lib/qb/options.rb +33 -2
- data/lib/qb/options/option.rb +1 -0
- data/lib/qb/role.rb +53 -21
- data/lib/qb/role/errors.rb +3 -3
- data/lib/qb/version.rb +1 -1
- data/qb.gemspec +1 -1
- data/roles/qb.project/tasks/main.yml +1 -0
- data/roles/qb.role/defaults/main.yml +3 -1
- data/roles/qb/gem/new/defaults/main.yml +12 -0
- data/roles/{qb.git_check_clean → qb/gem/new}/meta/main.yml +1 -1
- data/roles/qb/gem/new/meta/qb.yml +90 -0
- data/roles/qb/gem/new/tasks/bundle_gem.yml +97 -0
- data/roles/qb/gem/new/tasks/main.yml +22 -0
- data/roles/qb/gem/release/defaults/main.yml +5 -0
- data/roles/{qb.release_gem → qb/gem/release}/meta/main.yml +1 -1
- data/roles/{qb.release_gem → qb/gem/release}/meta/qb.yml +2 -2
- data/roles/{qb.release_gem → qb/gem/release}/tasks/main.yml +57 -35
- data/roles/qb/git/check/clean/README.md +4 -0
- data/roles/qb/git/check/clean/meta/main.yml +8 -0
- data/roles/{qb.git_check_clean → qb/git/check/clean}/tasks/main.yml +5 -5
- data/roles/qb/osx/notif/defaults/main.yml +4 -0
- data/roles/qb/osx/notif/meta/main.yml +8 -0
- data/roles/qb/osx/notif/meta/qb.yml +81 -0
- data/roles/qb/osx/notif/tasks/main.yml +14 -0
- metadata +20 -32
- data/roles/qb.gem/.qb-options.yml +0 -4
- data/roles/qb.gem/defaults/main.yml +0 -17
- data/roles/qb.gem/files/.gitkeep +0 -0
- data/roles/qb.gem/files/.rspec +0 -2
- data/roles/qb.gem/files/Rakefile +0 -6
- data/roles/qb.gem/files/setup +0 -7
- data/roles/qb.gem/filter_plugins/ruby_constantize.py +0 -22
- data/roles/qb.gem/meta/main.yml +0 -8
- data/roles/qb.gem/meta/qb.yml +0 -26
- data/roles/qb.gem/tasks/main.yml +0 -105
- data/roles/qb.gem/templates/.gitkeep +0 -0
- data/roles/qb.gem/templates/.travis.yml.j2 +0 -4
- data/roles/qb.gem/templates/BSD2-LICENSE.txt.j2 +0 -23
- data/roles/qb.gem/templates/BSD3-LICENSE.txt.j2 +0 -27
- data/roles/qb.gem/templates/Gemfile.j2 +0 -4
- data/roles/qb.gem/templates/MIT-LICENSE.txt.j2 +0 -21
- data/roles/qb.gem/templates/console.j2 +0 -14
- data/roles/qb.gem/templates/gemspec.j2 +0 -36
- data/roles/qb.gem/templates/module.rb.j2 +0 -5
- data/roles/qb.gem/templates/spec.rb.j2 +0 -11
- data/roles/qb.gem/templates/spec_helper.rb.j2 +0 -2
- data/roles/qb.gem/templates/version.rb.j2 +0 -3
- data/roles/qb.release_gem/defaults/main.yml +0 -2
@@ -1,19 +1,19 @@
|
|
1
1
|
---
|
2
|
-
# tasks file for qb
|
2
|
+
# tasks file for qb/git/check/clean
|
3
3
|
|
4
4
|
- name: >
|
5
|
-
|
5
|
+
Get git status for repo {{ git_root }}
|
6
6
|
shell: git status --porcelain 2>/dev/null
|
7
7
|
args:
|
8
|
-
chdir: "{{
|
8
|
+
chdir: "{{ git_root }}"
|
9
9
|
register: git_check_clean_status
|
10
10
|
changed_when: false
|
11
11
|
|
12
12
|
- name: >
|
13
|
-
|
13
|
+
Fail if the repo at {{ git_root }} has any untracked or modified files.
|
14
14
|
fail:
|
15
15
|
msg: >
|
16
|
-
|
16
|
+
Repo at {{ git_root }} can not have any untracked or
|
17
17
|
modified files, please commit or stash and retry.
|
18
18
|
when: (git_check_clean_status.stdout_lines | length) != 0
|
19
19
|
|
@@ -0,0 +1,81 @@
|
|
1
|
+
---
|
2
|
+
# meta/qb.yml file for notif
|
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
|
+
# Gemspec-style requirements. Right now only `gems:qb` is used, but plan to
|
11
|
+
# generalize in the future.
|
12
|
+
requirements:
|
13
|
+
gems:
|
14
|
+
qb: ~> 0.3.0
|
15
|
+
|
16
|
+
# prefix for role variables
|
17
|
+
var_prefix: osx_notif
|
18
|
+
|
19
|
+
# how to get a default for `dir` if it's not provided as the only
|
20
|
+
# positional argument. if a positional argument is provided it will
|
21
|
+
# override the method defined here.
|
22
|
+
#
|
23
|
+
# options:
|
24
|
+
#
|
25
|
+
# - null
|
26
|
+
# - require the value on the command line.
|
27
|
+
# - false
|
28
|
+
# - don't provide qb_dir (means doesn't load or save options either).
|
29
|
+
# - git_root
|
30
|
+
# - use the git root fof the directory that the `qb` command is invoked
|
31
|
+
# from. useful for 'project-centric' commands so they can be invoked
|
32
|
+
# from anywhere in the repo.
|
33
|
+
# - cwd
|
34
|
+
# - use the directory the `qb` command is invoked form.
|
35
|
+
# - {exe: PATH}
|
36
|
+
# - invoke an execuable, passing a JSON serialization of the options
|
37
|
+
# mapping their CLI names to values. path can be relative to role
|
38
|
+
# directory.
|
39
|
+
# - {find_up: FILENAME}
|
40
|
+
# - starting at the current direcotry and climbing up to parent
|
41
|
+
# directories, use the first one that contains FILENAME. error
|
42
|
+
# if none is found.
|
43
|
+
default_dir: false
|
44
|
+
|
45
|
+
# If `true`, QB will ensure the default dir exists before starting the play.
|
46
|
+
#
|
47
|
+
# For legacy reasons, this defaults to `true` if not present, but we want to
|
48
|
+
# default declare it as `false` here so new roles can turn it on only if
|
49
|
+
# they need it.
|
50
|
+
#
|
51
|
+
mkdir: false
|
52
|
+
|
53
|
+
# default user to become for play
|
54
|
+
default_user: null
|
55
|
+
|
56
|
+
# set to false to not save options in .qb-options.yml files
|
57
|
+
save_options: true
|
58
|
+
|
59
|
+
# options to pass to ansible-playbook
|
60
|
+
ansible_options: {}
|
61
|
+
|
62
|
+
options:
|
63
|
+
# - name: example
|
64
|
+
# description: an example of a variable.
|
65
|
+
# required: false
|
66
|
+
# type: boolean # boolean (default) | string
|
67
|
+
# short: e
|
68
|
+
|
69
|
+
- name: title
|
70
|
+
description: >-
|
71
|
+
Notification title.
|
72
|
+
required: true
|
73
|
+
type: string
|
74
|
+
short: t
|
75
|
+
|
76
|
+
- name: message
|
77
|
+
description: >-
|
78
|
+
Notification message.
|
79
|
+
required: true
|
80
|
+
type: string
|
81
|
+
short: m
|
@@ -0,0 +1,14 @@
|
|
1
|
+
---
|
2
|
+
# tasks file for notif
|
3
|
+
|
4
|
+
- name: >-
|
5
|
+
Install `terminal-notifier` via Homebrew
|
6
|
+
homebrew:
|
7
|
+
name: terminal-notifier
|
8
|
+
|
9
|
+
- name: >-
|
10
|
+
Send notification.
|
11
|
+
command: >-
|
12
|
+
{{ osx_notif_terminal_notifier_path | quote }}
|
13
|
+
-title {{ osx_notif_title | quote }}
|
14
|
+
-message {{ osx_notif_message | quote }}
|
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.3.
|
4
|
+
version: 0.3.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- nrser
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2017-09-
|
11
|
+
date: 2017-09-11 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -109,7 +109,7 @@ dependencies:
|
|
109
109
|
version: '0.0'
|
110
110
|
- - ">="
|
111
111
|
- !ruby/object:Gem::Version
|
112
|
-
version: 0.0.
|
112
|
+
version: 0.0.21
|
113
113
|
type: :runtime
|
114
114
|
prerelease: false
|
115
115
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -119,7 +119,7 @@ dependencies:
|
|
119
119
|
version: '0.0'
|
120
120
|
- - ">="
|
121
121
|
- !ruby/object:Gem::Version
|
122
|
-
version: 0.0.
|
122
|
+
version: 0.0.21
|
123
123
|
- !ruby/object:Gem::Dependency
|
124
124
|
name: nrser-extras
|
125
125
|
requirement: !ruby/object:Gem::Requirement
|
@@ -347,30 +347,6 @@ files:
|
|
347
347
|
- roles/qb.bump/tasks/frontend/level/release.yml
|
348
348
|
- roles/qb.bump/tasks/frontend/main.yml
|
349
349
|
- roles/qb.bump/tasks/main.yml
|
350
|
-
- roles/qb.gem/.qb-options.yml
|
351
|
-
- roles/qb.gem/defaults/main.yml
|
352
|
-
- roles/qb.gem/files/.gitkeep
|
353
|
-
- roles/qb.gem/files/.rspec
|
354
|
-
- roles/qb.gem/files/Rakefile
|
355
|
-
- roles/qb.gem/files/setup
|
356
|
-
- roles/qb.gem/filter_plugins/ruby_constantize.py
|
357
|
-
- roles/qb.gem/meta/main.yml
|
358
|
-
- roles/qb.gem/meta/qb.yml
|
359
|
-
- roles/qb.gem/tasks/main.yml
|
360
|
-
- roles/qb.gem/templates/.gitkeep
|
361
|
-
- roles/qb.gem/templates/.travis.yml.j2
|
362
|
-
- roles/qb.gem/templates/BSD2-LICENSE.txt.j2
|
363
|
-
- roles/qb.gem/templates/BSD3-LICENSE.txt.j2
|
364
|
-
- roles/qb.gem/templates/Gemfile.j2
|
365
|
-
- roles/qb.gem/templates/MIT-LICENSE.txt.j2
|
366
|
-
- roles/qb.gem/templates/console.j2
|
367
|
-
- roles/qb.gem/templates/gemspec.j2
|
368
|
-
- roles/qb.gem/templates/module.rb.j2
|
369
|
-
- roles/qb.gem/templates/spec.rb.j2
|
370
|
-
- roles/qb.gem/templates/spec_helper.rb.j2
|
371
|
-
- roles/qb.gem/templates/version.rb.j2
|
372
|
-
- roles/qb.git_check_clean/meta/main.yml
|
373
|
-
- roles/qb.git_check_clean/tasks/main.yml
|
374
350
|
- roles/qb.git_repo/defaults/main.yml
|
375
351
|
- roles/qb.git_repo/meta/main.yml
|
376
352
|
- roles/qb.git_repo/meta/qb.yml
|
@@ -628,10 +604,6 @@ files:
|
|
628
604
|
- roles/qb.read_json/meta/main.yml
|
629
605
|
- roles/qb.read_json/meta/qb.yml
|
630
606
|
- roles/qb.read_json/tasks/main.yml
|
631
|
-
- roles/qb.release_gem/defaults/main.yml
|
632
|
-
- roles/qb.release_gem/meta/main.yml
|
633
|
-
- roles/qb.release_gem/meta/qb.yml
|
634
|
-
- roles/qb.release_gem/tasks/main.yml
|
635
607
|
- roles/qb.role/.qb-options.yml
|
636
608
|
- roles/qb.role/defaults/main.yml
|
637
609
|
- roles/qb.role/meta/main.yml
|
@@ -679,12 +651,28 @@ files:
|
|
679
651
|
- roles/qb/facts/meta/main.yml
|
680
652
|
- roles/qb/facts/meta/qb.yml
|
681
653
|
- roles/qb/facts/tasks/main.yml
|
654
|
+
- roles/qb/gem/new/defaults/main.yml
|
655
|
+
- roles/qb/gem/new/meta/main.yml
|
656
|
+
- roles/qb/gem/new/meta/qb.yml
|
657
|
+
- roles/qb/gem/new/tasks/bundle_gem.yml
|
658
|
+
- roles/qb/gem/new/tasks/main.yml
|
659
|
+
- roles/qb/gem/release/defaults/main.yml
|
660
|
+
- roles/qb/gem/release/meta/main.yml
|
661
|
+
- roles/qb/gem/release/meta/qb.yml
|
662
|
+
- roles/qb/gem/release/tasks/main.yml
|
663
|
+
- roles/qb/git/check/clean/README.md
|
664
|
+
- roles/qb/git/check/clean/meta/main.yml
|
665
|
+
- roles/qb/git/check/clean/tasks/main.yml
|
682
666
|
- roles/qb/osx/git/change_case/README.md
|
683
667
|
- roles/qb/osx/git/change_case/defaults/main.yml
|
684
668
|
- roles/qb/osx/git/change_case/meta/main.yml
|
685
669
|
- roles/qb/osx/git/change_case/meta/qb.yml
|
686
670
|
- roles/qb/osx/git/change_case/tasks/main.yml
|
687
671
|
- roles/qb/osx/git/change_case/tasks/upcase.yml
|
672
|
+
- roles/qb/osx/notif/defaults/main.yml
|
673
|
+
- roles/qb/osx/notif/meta/main.yml
|
674
|
+
- roles/qb/osx/notif/meta/qb.yml
|
675
|
+
- roles/qb/osx/notif/tasks/main.yml
|
688
676
|
homepage: https://github.com/nrser/qb
|
689
677
|
licenses:
|
690
678
|
- MIT
|
@@ -1,17 +0,0 @@
|
|
1
|
-
---
|
2
|
-
# defaults file for qb.gem
|
3
|
-
|
4
|
-
# like some_gem
|
5
|
-
gem_name: "{{ dir | basename }}"
|
6
|
-
|
7
|
-
# folder in /lib as you would use in `require some_gem`
|
8
|
-
gem_dirname: "{{ gem_name }}"
|
9
|
-
|
10
|
-
# the ruby constant (class or module name), like "SomeGem"
|
11
|
-
gem_constant: "{{ gem_dirname | ruby_constantize }}"
|
12
|
-
|
13
|
-
gem_authors:
|
14
|
-
- "{{ git_user_name }}"
|
15
|
-
|
16
|
-
gem_emails:
|
17
|
-
- "{{ git_user_email }}"
|
data/roles/qb.gem/files/.gitkeep
DELETED
File without changes
|
data/roles/qb.gem/files/.rspec
DELETED
data/roles/qb.gem/files/Rakefile
DELETED
data/roles/qb.gem/files/setup
DELETED
@@ -1,22 +0,0 @@
|
|
1
|
-
import re
|
2
|
-
import subprocess
|
3
|
-
import pipes
|
4
|
-
from ansible import errors
|
5
|
-
|
6
|
-
# from bundler's implementation
|
7
|
-
#
|
8
|
-
# name.gsub(/-[_-]*(?![_-]|$)/) { "::" }.gsub(/([_-]+|(::)|^)(.|$)/) { $2.to_s + $3.upcase }
|
9
|
-
#
|
10
|
-
# https://github.com/bundler/bundler/blob/7ae072865e3fc23d9844322dde6ad0f6906e3f2c/lib/bundler/cli/gem.rb#L29
|
11
|
-
#
|
12
|
-
def ruby_constantize(s):
|
13
|
-
ruby = 'puts "%s".gsub(/-[_-]*(?![_-]|$)/) { "::" }.gsub(/([_-]+|(::)|^)(.|$)/) { $2.to_s + $3.upcase }' % s
|
14
|
-
return subprocess.check_output("/usr/bin/env ruby -e %s" % pipes.quote(ruby), shell=True).rstrip()
|
15
|
-
|
16
|
-
class FilterModule(object):
|
17
|
-
'''ruby_constantize filter'''
|
18
|
-
|
19
|
-
def filters(self):
|
20
|
-
return {
|
21
|
-
'ruby_constantize': ruby_constantize,
|
22
|
-
}
|
data/roles/qb.gem/meta/main.yml
DELETED
data/roles/qb.gem/meta/qb.yml
DELETED
@@ -1,26 +0,0 @@
|
|
1
|
-
---
|
2
|
-
vars:
|
3
|
-
- name: name
|
4
|
-
description: name of gem
|
5
|
-
type: string
|
6
|
-
|
7
|
-
- name: dirname
|
8
|
-
description: folder name in /lib as you would use in `require some_gem`
|
9
|
-
type: string
|
10
|
-
|
11
|
-
- name: constant
|
12
|
-
description: Ruby module or class name.
|
13
|
-
type: string
|
14
|
-
|
15
|
-
- name: license
|
16
|
-
description: license to include.
|
17
|
-
type: string
|
18
|
-
options:
|
19
|
-
- MIT
|
20
|
-
- BSD
|
21
|
-
|
22
|
-
- name: allowed_push_host
|
23
|
-
description: >
|
24
|
-
web address of server this gem is allowed to be pushed to. settings this
|
25
|
-
prohibits pushing to RubyGems.org and should be done for private gems.
|
26
|
-
type: string
|
data/roles/qb.gem/tasks/main.yml
DELETED
@@ -1,105 +0,0 @@
|
|
1
|
-
---
|
2
|
-
# tasks file for qb.gem
|
3
|
-
|
4
|
-
# preamble... should move to facts?
|
5
|
-
|
6
|
-
- name: get ruby version
|
7
|
-
command: ruby -e "puts RUBY_VERSION"
|
8
|
-
register: gem_ruby_version
|
9
|
-
changed_when: false
|
10
|
-
|
11
|
-
- name: get bundler version
|
12
|
-
command: bundle --version
|
13
|
-
register: gem_bundler_version
|
14
|
-
changed_when: false
|
15
|
-
|
16
|
-
# ok, actual work....
|
17
|
-
|
18
|
-
- name: add /bin/console
|
19
|
-
template:
|
20
|
-
src: console.j2
|
21
|
-
dest: "{{ dir }}/bin/console"
|
22
|
-
force: false
|
23
|
-
mode: a+x
|
24
|
-
|
25
|
-
- name: add /bin/setup
|
26
|
-
copy:
|
27
|
-
src: setup
|
28
|
-
dest: "{{ dir }}/bin/setup"
|
29
|
-
force: false
|
30
|
-
mode: a+x
|
31
|
-
|
32
|
-
- name: create /lib
|
33
|
-
file:
|
34
|
-
path: "{{ dir }}/lib"
|
35
|
-
state: directory
|
36
|
-
|
37
|
-
- name: add /lib/<dirname>.rb
|
38
|
-
template:
|
39
|
-
src: module.rb.j2
|
40
|
-
dest: "{{ dir }}/lib/{{ gem_dirname }}.rb"
|
41
|
-
force: false
|
42
|
-
|
43
|
-
- name: create /lib/<dirname>
|
44
|
-
file:
|
45
|
-
path: "{{ dir }}/lib/{{ gem_dirname }}"
|
46
|
-
state: directory
|
47
|
-
|
48
|
-
- name: add /lib/<dirname>/version.rb
|
49
|
-
template:
|
50
|
-
src: version.rb.j2
|
51
|
-
dest: "{{ dir }}/lib/{{ gem_dirname }}/version.rb"
|
52
|
-
force: false
|
53
|
-
|
54
|
-
- name: create /spec
|
55
|
-
file:
|
56
|
-
path: "{{ dir }}/spec"
|
57
|
-
state: directory
|
58
|
-
|
59
|
-
- name: add /spec/spec_helper.rb
|
60
|
-
template:
|
61
|
-
src: spec_helper.rb.j2
|
62
|
-
dest: "{{ dir }}/spec/spec_helper.rb"
|
63
|
-
force: false
|
64
|
-
|
65
|
-
- name: add /spec/<dirname>_spec.rb
|
66
|
-
template:
|
67
|
-
src: spec.rb.j2
|
68
|
-
dest: "{{ dir }}/spec/{{ gem_dirname }}_spec.rb"
|
69
|
-
force: false
|
70
|
-
|
71
|
-
- name: add /.rspec
|
72
|
-
copy:
|
73
|
-
src: .rspec
|
74
|
-
dest: "{{ dir }}/.rspec"
|
75
|
-
force: false
|
76
|
-
|
77
|
-
- name: add /.travis.yml
|
78
|
-
template:
|
79
|
-
src: .travis.yml.j2
|
80
|
-
dest: "{{ dir }}/.travis.yml"
|
81
|
-
force: false
|
82
|
-
|
83
|
-
- name: add {{ gem_name }}.gemspec
|
84
|
-
template:
|
85
|
-
src: gemspec.j2
|
86
|
-
dest: "{{ dir }}/{{ gem_name }}.gemspec"
|
87
|
-
force: false
|
88
|
-
|
89
|
-
- name: add /Gemfile
|
90
|
-
template:
|
91
|
-
src: Gemfile.j2
|
92
|
-
dest: "{{ dir }}/Gemfile"
|
93
|
-
force: false
|
94
|
-
|
95
|
-
- name: add /LICENSE.txt
|
96
|
-
template:
|
97
|
-
src: "{{ gem_license }}-LICENSE.txt.j2"
|
98
|
-
dest: "{{ dir }}/LICENSE.txt"
|
99
|
-
force: false
|
100
|
-
when: gem_license is defined
|
101
|
-
|
102
|
-
- name: add /Rakefile
|
103
|
-
copy:
|
104
|
-
src: Rakefile
|
105
|
-
dest: "{{ dir }}/Rakefile"
|