qb 0.1.71 → 0.1.72

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 5ee98f039ed77e7af8f0c9e7dc85f09871d64b59
4
- data.tar.gz: 477881c79f14fc8d3b126e60383929e31829936d
3
+ metadata.gz: 56ee085b4ad133ca61ffc618b9e91886b22d623a
4
+ data.tar.gz: e4a66a0fa5f86d261310562d93dc6896285d87c2
5
5
  SHA512:
6
- metadata.gz: 8bf2d7c0430cc0a1b4d49275ba5a35725aef97bad9403dded8774fe94d33ca1c47d57c02279f4cbca306550f042867e1e215ce2f48fcca79186788f3a1feaa66
7
- data.tar.gz: fc53d954a26b30dba0cbebcec50fe1ed0f7c2c9782f57b45d3e37be6c3049bfa842f15f752287e6aa134a2c3241f0d20a1bc47912bf2c3bcab9b761d72d2294b
6
+ metadata.gz: 84cc40de910e66c346335b39e63d4d10bbe3f73bc6c53ce070a8e8e63f5265602869e42ff2cdfdc83d4bc2294346193e95954b76f3df86226b75d7e82438b289
7
+ data.tar.gz: 756bf8f03c836c59ff05b17d074232673a63fb46f48d2a91a871ac636cb8ce16ad86fc79e3c4f44e75877e12354f51a1b8467ff782029b485c5c2c439b474ea0
@@ -4,7 +4,7 @@ module QB
4
4
 
5
5
  GEM_NAME = 'qb'
6
6
 
7
- VERSION = "0.1.71"
7
+ VERSION = "0.1.72"
8
8
 
9
9
  MIN_ANSIBLE_VERSION = Gem::Version.new '2.1.2'
10
10
 
@@ -0,0 +1,66 @@
1
+ """
2
+ Path manipulation filters using Python's `pathlib` module:
3
+
4
+ https://docs.python.org/dev/library/pathlib.html
5
+
6
+ as well as the `os.path` stdlib module.
7
+
8
+ Provided to Python 2.7 via the `pathlib2` pip module.
9
+ """
10
+
11
+ from __future__ import (absolute_import, division, print_function)
12
+ __metaclass__ = type
13
+
14
+ import sys
15
+ import re
16
+ import os
17
+ from pathlib2 import Path
18
+
19
+ from ansible.errors import AnsibleError
20
+
21
+ # def cap(string):
22
+ # '''just upper-case the first damn letter.
23
+ #
24
+ # >>> cap("DoSomething")
25
+ # 'DoSomething'
26
+ #
27
+ # >>> cap('doSomething')
28
+ # 'DoSomething'
29
+ # '''
30
+ # return string[0].upper() + string[1:]
31
+
32
+
33
+ def resolve(*path_segments):
34
+ '''
35
+ Path resolution like I know from Node's `path.resolve`, but using Python's
36
+ `pathlib.Path#resolve`, which seems to function the same way.
37
+
38
+ Backported into 2.7 via the `pathlib2` pip modules.
39
+
40
+ Joins paths right-to-left until they form an absolute path. If none is
41
+ formed, the path is prefixed by the current directory to form an absolute
42
+ path.
43
+
44
+ The resuling string is absolute and normalized.
45
+ '''
46
+
47
+ return Path(*path_segments).resolve().__str__()
48
+
49
+
50
+ class FilterModule(object):
51
+ '''
52
+ Path manipualtion filter via Python's os.path module.
53
+ '''
54
+
55
+ def filters(self):
56
+ return {
57
+ 'path_join': os.path.join,
58
+ 'path_resolve': resolve,
59
+ }
60
+
61
+
62
+ # testing - call camel_case on first cli arg and print result
63
+ if __name__ == '__main__':
64
+ import doctest
65
+ doctest.testmod()
66
+
@@ -0,0 +1,8 @@
1
+ ---
2
+ # meta file for qb.qb_setup
3
+
4
+ allow_duplicates: yes
5
+
6
+ dependencies: []
7
+ # - role: role-name
8
+
@@ -0,0 +1,69 @@
1
+ ---
2
+ # meta/qb.yml file for qb.qb_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
+ Takes care of additional setup required for QB besides installtion of the
10
+ gem, like installing Python libraries.
11
+
12
+ # Gemspec-style requirements. Right now only `gems:qb` is used, but plan to
13
+ # generalize in the future.
14
+ requirements:
15
+ gems:
16
+ qb: ~> 0.1.69
17
+
18
+ # prefix for role variables
19
+ var_prefix: null
20
+
21
+ # how to get a default for `dir` if it's not provided as the only
22
+ # positional argument. if a positional argument is provided it will
23
+ # override the method defined here.
24
+ #
25
+ # options:
26
+ #
27
+ # - null
28
+ # - require the value on the command line.
29
+ # - false
30
+ # - don't provide qb_dir (means doesn't load or save options either).
31
+ # - git_root
32
+ # - use the git root fof the directory that the `qb` command is invoked
33
+ # from. useful for 'project-centric' commands so they can be invoked
34
+ # from anywhere in the repo.
35
+ # - cwd
36
+ # - use the directory the `qb` command is invoked form.
37
+ # - {exe: PATH}
38
+ # - invoke an execuable, passing a JSON serialization of the options
39
+ # mapping their CLI names to values. path can be relative to role
40
+ # directory.
41
+ # - {find_up: FILENAME}
42
+ # - starting at the current direcotry and climbing up to parent
43
+ # directories, use the first one that contains FILENAME. error
44
+ # if none is found.
45
+ default_dir: false
46
+
47
+ # If `true`, QB will ensure the default dir exists before starting the play.
48
+ #
49
+ # For legacy reasons, this defaults to `true` if not present, but we want to
50
+ # default declare it as `false` here so new roles can turn it on only if
51
+ # they need it.
52
+ #
53
+ mkdir: false
54
+
55
+ # default user to become for play
56
+ default_user: null
57
+
58
+ # set to false to not save options in .qb-options.yml files
59
+ save_options: true
60
+
61
+ # options to pass to ansible-playbook
62
+ ansible_options: {}
63
+
64
+ options: []
65
+ # - name: example
66
+ # description: an example of a variable.
67
+ # required: false
68
+ # type: boolean # boolean (default) | string
69
+ # short: e
@@ -0,0 +1,6 @@
1
+ ---
2
+ # tasks file for qb.qb_setup
3
+
4
+ - name: Install packages.
5
+ include: >-
6
+ {{ role_path }}/tasks/packages.yml
@@ -0,0 +1,3 @@
1
+ - name: Install pip pacakges for Python.
2
+ include: >-
3
+ {{ role_path }}/tasks/packages/pip.yml
@@ -0,0 +1,6 @@
1
+ # tasks file for path_filters
2
+ - name: Install Python pathlib2 package via pip.
3
+ pip:
4
+ name: pathlib2
5
+ version: 2.3.0
6
+
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.71
4
+ version: 0.1.72
5
5
  platform: ruby
6
6
  authors:
7
7
  - nrser
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2017-07-17 00:00:00.000000000 Z
11
+ date: 2017-08-09 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -202,6 +202,7 @@ files:
202
202
  - node_modules/semver/range.bnf
203
203
  - node_modules/semver/semver.js
204
204
  - package.json
205
+ - plugins/filter_plugins/path.py
205
206
  - plugins/filter_plugins/string.py
206
207
  - plugins/filter_plugins/version.py
207
208
  - plugins/lookup_plugins/every.py
@@ -598,6 +599,11 @@ files:
598
599
  - roles/qb.qb_role/tasks/main.yml
599
600
  - roles/qb.qb_role/templates/.gitkeep
600
601
  - roles/qb.qb_role/templates/qb.yml.j2
602
+ - roles/qb.qb_setup/meta/main.yml
603
+ - roles/qb.qb_setup/meta/qb.yml
604
+ - roles/qb.qb_setup/tasks/main.yml
605
+ - roles/qb.qb_setup/tasks/packages.yml
606
+ - roles/qb.qb_setup/tasks/packages/pip.yml
601
607
  - roles/qb.read_json/defaults/main.yml
602
608
  - roles/qb.read_json/meta/main.yml
603
609
  - roles/qb.read_json/meta/qb.yml