qb 0.3.22 → 0.3.23
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/VERSION +1 -1
- data/lib/qb/labs/README.md +4 -0
- data/lib/qb/labs/atom/apm.rb +173 -0
- data/qb.gemspec +3 -3
- data/roles/qb/labs/README.md +4 -0
- data/roles/qb/labs/atom/apm/defaults/main.yml +9 -0
- data/roles/qb/labs/atom/apm/meta/main.yml +10 -0
- data/roles/qb/labs/atom/apm/meta/qb.yml +47 -0
- data/roles/qb/labs/atom/apm/tasks/main.yml +15 -0
- metadata +18 -23
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 3b3a5dfc104a28f159f72ffcfedf5932e2912448
|
4
|
+
data.tar.gz: b68ee826b4d98678abc8adffbe5e54395f0109f3
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: bcf7a62d2b0d4d0089c46e768e0660137a040593ec58b96a1bce6849be7e2d0680595d6f349cfc985efbc6d862dcf5ab11379851e83c7c0dad45836c95d5bd80
|
7
|
+
data.tar.gz: '0797e7ae29fb71602935b9959cf3df432ab0ed7f5098734e3dbf29c38f691a217015f9b0e49c1f69e6bd09366a73aafc515d33e809c3f1df1c1b6d1cb2ea6649'
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.3.
|
1
|
+
0.3.23
|
@@ -0,0 +1,173 @@
|
|
1
|
+
# encoding: UTF-8
|
2
|
+
# frozen_string_literal: true
|
3
|
+
|
4
|
+
# Requirements
|
5
|
+
# =======================================================================
|
6
|
+
|
7
|
+
# Stdlib
|
8
|
+
# -----------------------------------------------------------------------
|
9
|
+
|
10
|
+
# Deps
|
11
|
+
# -----------------------------------------------------------------------
|
12
|
+
|
13
|
+
# Project / Package
|
14
|
+
# -----------------------------------------------------------------------
|
15
|
+
|
16
|
+
|
17
|
+
# Refinements
|
18
|
+
# =======================================================================
|
19
|
+
|
20
|
+
using NRSER
|
21
|
+
using NRSER::Types
|
22
|
+
|
23
|
+
|
24
|
+
# Declarations
|
25
|
+
# =======================================================================
|
26
|
+
|
27
|
+
module QB::Labs; end
|
28
|
+
module QB::Labs::Atom; end
|
29
|
+
|
30
|
+
|
31
|
+
# Definitions
|
32
|
+
# =======================================================================
|
33
|
+
|
34
|
+
|
35
|
+
# @todo document QB::Atom::APM class.
|
36
|
+
class QB::Labs::Atom::APM
|
37
|
+
|
38
|
+
|
39
|
+
# Mixins
|
40
|
+
# ============================================================================
|
41
|
+
|
42
|
+
extend SingleForwardable
|
43
|
+
|
44
|
+
include SemanticLogger::Loggable
|
45
|
+
|
46
|
+
# Constants
|
47
|
+
# ======================================================================
|
48
|
+
|
49
|
+
|
50
|
+
# Class Methods
|
51
|
+
# ======================================================================
|
52
|
+
|
53
|
+
# @todo Document default method.
|
54
|
+
#
|
55
|
+
# @param [type] arg_name
|
56
|
+
# @todo Add name param description.
|
57
|
+
#
|
58
|
+
# @return [return_type]
|
59
|
+
# @todo Document return value.
|
60
|
+
#
|
61
|
+
def self.default
|
62
|
+
@default ||= new
|
63
|
+
end # .default
|
64
|
+
|
65
|
+
|
66
|
+
def self.find_bin
|
67
|
+
bin = ['apm-beta', 'apm'].find_map { |bin_name|
|
68
|
+
which = Cmds.chomp 'which %s', bin_name
|
69
|
+
|
70
|
+
if !which.empty? && File.executable?( which )
|
71
|
+
which
|
72
|
+
end
|
73
|
+
}
|
74
|
+
|
75
|
+
if bin.nil?
|
76
|
+
raise "Could not find apm bin!"
|
77
|
+
end
|
78
|
+
|
79
|
+
bin
|
80
|
+
end
|
81
|
+
|
82
|
+
|
83
|
+
# Forwarding
|
84
|
+
# ----------------------------------------------------------------------------
|
85
|
+
|
86
|
+
single_delegate [:list, :installed?] => :default
|
87
|
+
|
88
|
+
|
89
|
+
# Attributes
|
90
|
+
# ======================================================================
|
91
|
+
|
92
|
+
|
93
|
+
# What to use as the `apm` executable.
|
94
|
+
#
|
95
|
+
# @return [String]
|
96
|
+
#
|
97
|
+
attr_reader :bin
|
98
|
+
|
99
|
+
|
100
|
+
|
101
|
+
# Constructor
|
102
|
+
# ======================================================================
|
103
|
+
|
104
|
+
# Instantiate a new `QB::Atom::APM`.
|
105
|
+
def initialize bin: self.class.find_bin
|
106
|
+
@bin = bin
|
107
|
+
end # #initialize
|
108
|
+
|
109
|
+
|
110
|
+
# Instance Methods
|
111
|
+
# ======================================================================
|
112
|
+
|
113
|
+
# @todo Document list method.
|
114
|
+
#
|
115
|
+
# @param [type] arg_name
|
116
|
+
# @todo Add name param description.
|
117
|
+
#
|
118
|
+
# @return [return_type]
|
119
|
+
# @todo Document return value.
|
120
|
+
#
|
121
|
+
def list
|
122
|
+
Cmds.out!( '%{bin} list --bare', bin: bin ).
|
123
|
+
lines.
|
124
|
+
each_with_object( {} ) do |line, packages|
|
125
|
+
next if line =~ /\A\s+\z/
|
126
|
+
|
127
|
+
name, version = line.chomp.split( '@', 2 )
|
128
|
+
|
129
|
+
if [name, version].all? { |s| t.non_empty_str === s }
|
130
|
+
packages[name] = version
|
131
|
+
else
|
132
|
+
logger.warn "Unable to parse `apm list --bare line`",
|
133
|
+
line: line,
|
134
|
+
name: name,
|
135
|
+
version: version
|
136
|
+
end
|
137
|
+
end # each_with_object
|
138
|
+
end # #list
|
139
|
+
|
140
|
+
|
141
|
+
def version name:
|
142
|
+
list[t.non_empty_str.check( name )]
|
143
|
+
end
|
144
|
+
|
145
|
+
|
146
|
+
# @todo Document installed? method.
|
147
|
+
#
|
148
|
+
# @param [type] arg_name
|
149
|
+
# @todo Add name param description.
|
150
|
+
#
|
151
|
+
# @return [return_type]
|
152
|
+
# @todo Document return value.
|
153
|
+
#
|
154
|
+
def installed? package_name
|
155
|
+
list.key? t.non_empty_str.check( package_name )
|
156
|
+
end # #installed?
|
157
|
+
|
158
|
+
|
159
|
+
def install name:, force: false
|
160
|
+
if current_version = self.version( name )
|
161
|
+
logger.info "Atom package #{ name } already installed",
|
162
|
+
version: current_version
|
163
|
+
|
164
|
+
return false unless force
|
165
|
+
|
166
|
+
logger.info "Forcing installation..."
|
167
|
+
end
|
168
|
+
|
169
|
+
|
170
|
+
|
171
|
+
end
|
172
|
+
|
173
|
+
end # class QB::Atom::APM
|
data/qb.gemspec
CHANGED
@@ -194,9 +194,9 @@ Gem::Specification.new do |spec|
|
|
194
194
|
# Runtime Dependencies
|
195
195
|
# ----------------------------------------------------------------------------
|
196
196
|
|
197
|
-
spec.add_dependency "cmds", '~> 0.
|
198
|
-
spec.add_dependency "nrser", '
|
199
|
-
spec.add_dependency "state_mate", '~> 0.
|
197
|
+
spec.add_dependency "cmds", '~> 0.2.7'
|
198
|
+
spec.add_dependency "nrser", '< 0.3', '>= 0.2.0.pre.2'
|
199
|
+
spec.add_dependency "state_mate", '~> 0.1.1'
|
200
200
|
|
201
201
|
# Used to parse `ansible.cfg` files
|
202
202
|
spec.add_dependency 'parseconfig', '~> 1.0', '>= 1.0.8'
|
@@ -0,0 +1,9 @@
|
|
1
|
+
---
|
2
|
+
##############################################################################
|
3
|
+
# Variable defaults for `qb/atom/pkg` role
|
4
|
+
#
|
5
|
+
# @see http://docs.ansible.com/ansible/latest/playbooks_reuse_roles.html#role-default-variables
|
6
|
+
#
|
7
|
+
##############################################################################
|
8
|
+
|
9
|
+
apm_bin: amp
|
@@ -0,0 +1,10 @@
|
|
1
|
+
---
|
2
|
+
##############################################################################
|
3
|
+
# Ansible metadata for `qb/atom/pkg` role
|
4
|
+
##############################################################################
|
5
|
+
|
6
|
+
allow_duplicates: yes
|
7
|
+
|
8
|
+
dependencies: []
|
9
|
+
# - role: role-name
|
10
|
+
|
@@ -0,0 +1,47 @@
|
|
1
|
+
---
|
2
|
+
##############################################################################
|
3
|
+
# QB metadata for `qb/atom/pkg` role.
|
4
|
+
#
|
5
|
+
# QB settings for this role.
|
6
|
+
#
|
7
|
+
# @see http://www.rubydoc.info/gems/qb/file/doc/qb_roles/metadata.md
|
8
|
+
#
|
9
|
+
##############################################################################
|
10
|
+
|
11
|
+
# Shown in help output, etc.
|
12
|
+
description: >-
|
13
|
+
TODO describe qb/atom/pkg role
|
14
|
+
|
15
|
+
# Gemspec-style requirements. Right now only `.gems.qb` is used.
|
16
|
+
requirements:
|
17
|
+
gems:
|
18
|
+
qb: ~> 0.3.0
|
19
|
+
|
20
|
+
# Prefix for role variables
|
21
|
+
var_prefix: pkg
|
22
|
+
|
23
|
+
# How to get a default for `DIRECTORY` arg if not provided by user.
|
24
|
+
#
|
25
|
+
# @see http://www.rubydoc.info/gems/qb/file/doc/qb_roles/metadata/default_dir.md
|
26
|
+
#
|
27
|
+
default_dir: null # means use *must* provide `DIRECTORY` arg
|
28
|
+
|
29
|
+
# If `true`, QB will ensure `DIRECTORY` exists before starting the play.
|
30
|
+
mkdir: false
|
31
|
+
|
32
|
+
# Default user to become for play
|
33
|
+
default_user: null
|
34
|
+
|
35
|
+
# Save options in `.qb-options.yml` files
|
36
|
+
save_options: true
|
37
|
+
|
38
|
+
# Options to pass to `ansible-playbook`
|
39
|
+
ansible_options: {}
|
40
|
+
|
41
|
+
# Role CLI options that become Ansible vars
|
42
|
+
options:
|
43
|
+
# - name: example
|
44
|
+
# description: an example of a variable.
|
45
|
+
# required: false
|
46
|
+
# type: boolean # boolean (default) | string
|
47
|
+
# short: e
|
@@ -0,0 +1,15 @@
|
|
1
|
+
---
|
2
|
+
##############################################################################
|
3
|
+
# Main tasks for `qb/atom/pkg` role
|
4
|
+
##############################################################################
|
5
|
+
|
6
|
+
- name: >-
|
7
|
+
Install Atom package
|
8
|
+
qb.send:
|
9
|
+
to: QB::Atom::APM
|
10
|
+
method: install
|
11
|
+
kwds:
|
12
|
+
name: >-
|
13
|
+
{{ apm_package_name }}
|
14
|
+
register: apm_install_rsp
|
15
|
+
|
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.23
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- nrser
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2018-02-
|
11
|
+
date: 2018-02-28 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -119,9 +119,6 @@ dependencies:
|
|
119
119
|
requirement: !ruby/object:Gem::Requirement
|
120
120
|
requirements:
|
121
121
|
- - "~>"
|
122
|
-
- !ruby/object:Gem::Version
|
123
|
-
version: '0.0'
|
124
|
-
- - ">="
|
125
122
|
- !ruby/object:Gem::Version
|
126
123
|
version: 0.2.7
|
127
124
|
type: :runtime
|
@@ -129,51 +126,42 @@ dependencies:
|
|
129
126
|
version_requirements: !ruby/object:Gem::Requirement
|
130
127
|
requirements:
|
131
128
|
- - "~>"
|
132
|
-
- !ruby/object:Gem::Version
|
133
|
-
version: '0.0'
|
134
|
-
- - ">="
|
135
129
|
- !ruby/object:Gem::Version
|
136
130
|
version: 0.2.7
|
137
131
|
- !ruby/object:Gem::Dependency
|
138
132
|
name: nrser
|
139
133
|
requirement: !ruby/object:Gem::Requirement
|
140
134
|
requirements:
|
141
|
-
- - "
|
135
|
+
- - "<"
|
142
136
|
- !ruby/object:Gem::Version
|
143
|
-
version: '0.
|
137
|
+
version: '0.3'
|
144
138
|
- - ">="
|
145
139
|
- !ruby/object:Gem::Version
|
146
|
-
version: 0.
|
140
|
+
version: 0.2.0.pre.2
|
147
141
|
type: :runtime
|
148
142
|
prerelease: false
|
149
143
|
version_requirements: !ruby/object:Gem::Requirement
|
150
144
|
requirements:
|
151
|
-
- - "
|
145
|
+
- - "<"
|
152
146
|
- !ruby/object:Gem::Version
|
153
|
-
version: '0.
|
147
|
+
version: '0.3'
|
154
148
|
- - ">="
|
155
149
|
- !ruby/object:Gem::Version
|
156
|
-
version: 0.
|
150
|
+
version: 0.2.0.pre.2
|
157
151
|
- !ruby/object:Gem::Dependency
|
158
152
|
name: state_mate
|
159
153
|
requirement: !ruby/object:Gem::Requirement
|
160
154
|
requirements:
|
161
155
|
- - "~>"
|
162
156
|
- !ruby/object:Gem::Version
|
163
|
-
version:
|
164
|
-
- - ">="
|
165
|
-
- !ruby/object:Gem::Version
|
166
|
-
version: 0.1.0
|
157
|
+
version: 0.1.1
|
167
158
|
type: :runtime
|
168
159
|
prerelease: false
|
169
160
|
version_requirements: !ruby/object:Gem::Requirement
|
170
161
|
requirements:
|
171
162
|
- - "~>"
|
172
163
|
- !ruby/object:Gem::Version
|
173
|
-
version:
|
174
|
-
- - ">="
|
175
|
-
- !ruby/object:Gem::Version
|
176
|
-
version: 0.1.0
|
164
|
+
version: 0.1.1
|
177
165
|
- !ruby/object:Gem::Dependency
|
178
166
|
name: parseconfig
|
179
167
|
requirement: !ruby/object:Gem::Requirement
|
@@ -296,6 +284,8 @@ files:
|
|
296
284
|
- lib/qb/github/repo_id.rb
|
297
285
|
- lib/qb/github/resource.rb
|
298
286
|
- lib/qb/github/types.rb
|
287
|
+
- lib/qb/labs/README.md
|
288
|
+
- lib/qb/labs/atom/apm.rb
|
299
289
|
- lib/qb/options.rb
|
300
290
|
- lib/qb/options/option.rb
|
301
291
|
- lib/qb/package.rb
|
@@ -616,6 +606,11 @@ files:
|
|
616
606
|
- roles/qb/json/read/meta/main.yml
|
617
607
|
- roles/qb/json/read/meta/qb.yml
|
618
608
|
- roles/qb/json/read/tasks/main.yml
|
609
|
+
- roles/qb/labs/README.md
|
610
|
+
- roles/qb/labs/atom/apm/defaults/main.yml
|
611
|
+
- roles/qb/labs/atom/apm/meta/main.yml
|
612
|
+
- roles/qb/labs/atom/apm/meta/qb.yml
|
613
|
+
- roles/qb/labs/atom/apm/tasks/main.yml
|
619
614
|
- roles/qb/nodejs/npm/hack/README.md
|
620
615
|
- roles/qb/nodejs/npm/hack/meta/main.yml
|
621
616
|
- roles/qb/nodejs/npm/hack/meta/qb.yml
|
@@ -804,7 +799,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
804
799
|
version: '0'
|
805
800
|
requirements: []
|
806
801
|
rubyforge_project:
|
807
|
-
rubygems_version: 2.5.2
|
802
|
+
rubygems_version: 2.5.2.2
|
808
803
|
signing_key:
|
809
804
|
specification_version: 4
|
810
805
|
summary: qb is all about projects. named after everyone's favorite projects.
|