pack_rb 0.2.0 → 0.3.0
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/README.md +10 -0
- data/lib/pack_rb/packer.rb +31 -2
- data/lib/pack_rb/sub_commands.rb +7 -0
- data/lib/pack_rb/version.rb +1 -1
- metadata +18 -18
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 58c2f1887fec78272487e04cded1d2ff9e60dab6
|
4
|
+
data.tar.gz: b3b8206993ae86eec8bc1f9b45f6ed97d175cd0c
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: e6b0e781d943eb7bfd9ee241d2f732c1e2eec42070bd626a9380f7b2e08a86c33b12f560f0949c2cf34db82c807c67254fa908887117473f803f96cf74a9a0d7
|
7
|
+
data.tar.gz: 642c0b78b67c15aa953b09b5144fbf5ad25d1aea2f7ac5fb83cb132396867fbad9f7d2e564e6c7d6a07e9ff7f0221dbf2b00fb744a4a1017d0769213e09550e3
|
data/README.md
CHANGED
@@ -65,6 +65,16 @@ packer = PackRb::Packer.new(tpl: 'config/template.json', machine_readable: true)
|
|
65
65
|
packer.build(debug: true)
|
66
66
|
```
|
67
67
|
|
68
|
+
### Streaming Output
|
69
|
+
|
70
|
+
If you wish to have STDOUT and STDERR from the Packer command stream to the console as it runs,
|
71
|
+
you will need to enable streaming by setting ``stream_output: true``:
|
72
|
+
|
73
|
+
```ruby
|
74
|
+
PackRb::Packer.new(tpl: 'config/template.json', machine_readable: true, stream_output: true)
|
75
|
+
packer.build(debug :true)
|
76
|
+
```
|
77
|
+
|
68
78
|
## Development
|
69
79
|
|
70
80
|
After checking out the repo, run `bin/setup` to install dependencies. Then, run `rake spec` to run the tests. You can also run `bin/console` for an interactive prompt that will allow you to experiment. Run `bundle exec pack_rb` to use the gem in this directory, ignoring other installed copies of this gem.
|
data/lib/pack_rb/packer.rb
CHANGED
@@ -1,5 +1,24 @@
|
|
1
1
|
require 'json'
|
2
2
|
require 'pack_rb/sub_commands'
|
3
|
+
require 'mkmf'
|
4
|
+
|
5
|
+
# MakeMakefile::find_executable provides a built-in, native Ruby
|
6
|
+
# implementation of the Unix ``which`` command. Modify some variables
|
7
|
+
# to make it suppress writing log files or echoing.
|
8
|
+
begin
|
9
|
+
const_get 'MakeMakefile'
|
10
|
+
# this will fail with NameError on older rubies
|
11
|
+
module MakeMakefile::Logging
|
12
|
+
@logfile = File::NULL
|
13
|
+
@quiet = true
|
14
|
+
end
|
15
|
+
rescue NameError
|
16
|
+
# module on older rubies
|
17
|
+
module Logging
|
18
|
+
@logfile = File::NULL
|
19
|
+
@quiet = true
|
20
|
+
end
|
21
|
+
end
|
3
22
|
|
4
23
|
module PackRb
|
5
24
|
class Packer
|
@@ -7,6 +26,7 @@ module PackRb
|
|
7
26
|
@machine_readable = opts[:machine_readable]
|
8
27
|
@bin_path = opts[:bin_path]
|
9
28
|
@tpl = opts[:tpl]
|
29
|
+
@stream_output = opts.fetch(:stream_output, false)
|
10
30
|
end
|
11
31
|
|
12
32
|
def command
|
@@ -18,7 +38,16 @@ module PackRb
|
|
18
38
|
end
|
19
39
|
|
20
40
|
def bin
|
21
|
-
bin_path
|
41
|
+
return bin_path if bin_path
|
42
|
+
# some distros, such as Arch Linux, package the Packer
|
43
|
+
# binary as ``packer-io``
|
44
|
+
['packer', 'packer-io'].each do |bin_name|
|
45
|
+
p = find_executable(bin_name)
|
46
|
+
return p if p
|
47
|
+
end
|
48
|
+
raise RuntimeError, "Could not find packer or packer-io binary on path." \
|
49
|
+
" Please specify the full binary path with the " \
|
50
|
+
"'bin_path' option."
|
22
51
|
end
|
23
52
|
|
24
53
|
def template
|
@@ -27,7 +56,7 @@ module PackRb
|
|
27
56
|
end
|
28
57
|
|
29
58
|
def commander
|
30
|
-
@commander ||= PackRb::SubCommands.new
|
59
|
+
@commander ||= PackRb::SubCommands.new(stream_output: @stream_output)
|
31
60
|
end
|
32
61
|
|
33
62
|
def method_missing(name, *args, &block)
|
data/lib/pack_rb/sub_commands.rb
CHANGED
@@ -9,6 +9,13 @@ module PackRb
|
|
9
9
|
include PackRb::SubCommands::Inspect
|
10
10
|
include PackRb::SubCommands::Validate
|
11
11
|
|
12
|
+
def initialize(opts = {})
|
13
|
+
if opts[:stream_output]
|
14
|
+
STDOUT.sync = true
|
15
|
+
STDERR.sync = true
|
16
|
+
end
|
17
|
+
end
|
18
|
+
|
12
19
|
# Execute a Packer command via {PackRb::Executor.run_cmd_stream_output}
|
13
20
|
#
|
14
21
|
# @param opts [Hash] options passed to the Packer class
|
data/lib/pack_rb/version.rb
CHANGED
metadata
CHANGED
@@ -1,83 +1,83 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: pack_rb
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.3.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Jonathan Niesen
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-03-
|
11
|
+
date: 2016-03-17 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: guard
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
|
-
- -
|
17
|
+
- - ~>
|
18
18
|
- !ruby/object:Gem::Version
|
19
19
|
version: '2.13'
|
20
20
|
type: :development
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
|
-
- -
|
24
|
+
- - ~>
|
25
25
|
- !ruby/object:Gem::Version
|
26
26
|
version: '2.13'
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: guard-bundler
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
|
-
- -
|
31
|
+
- - ~>
|
32
32
|
- !ruby/object:Gem::Version
|
33
33
|
version: '2.1'
|
34
34
|
type: :development
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
|
-
- -
|
38
|
+
- - ~>
|
39
39
|
- !ruby/object:Gem::Version
|
40
40
|
version: '2.1'
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
42
|
name: guard-rspec
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
44
44
|
requirements:
|
45
|
-
- -
|
45
|
+
- - ~>
|
46
46
|
- !ruby/object:Gem::Version
|
47
47
|
version: '4.6'
|
48
48
|
type: :development
|
49
49
|
prerelease: false
|
50
50
|
version_requirements: !ruby/object:Gem::Requirement
|
51
51
|
requirements:
|
52
|
-
- -
|
52
|
+
- - ~>
|
53
53
|
- !ruby/object:Gem::Version
|
54
54
|
version: '4.6'
|
55
55
|
- !ruby/object:Gem::Dependency
|
56
56
|
name: rake
|
57
57
|
requirement: !ruby/object:Gem::Requirement
|
58
58
|
requirements:
|
59
|
-
- -
|
59
|
+
- - ~>
|
60
60
|
- !ruby/object:Gem::Version
|
61
61
|
version: '10.0'
|
62
62
|
type: :development
|
63
63
|
prerelease: false
|
64
64
|
version_requirements: !ruby/object:Gem::Requirement
|
65
65
|
requirements:
|
66
|
-
- -
|
66
|
+
- - ~>
|
67
67
|
- !ruby/object:Gem::Version
|
68
68
|
version: '10.0'
|
69
69
|
- !ruby/object:Gem::Dependency
|
70
70
|
name: rspec
|
71
71
|
requirement: !ruby/object:Gem::Requirement
|
72
72
|
requirements:
|
73
|
-
- -
|
73
|
+
- - ~>
|
74
74
|
- !ruby/object:Gem::Version
|
75
75
|
version: '3.0'
|
76
76
|
type: :development
|
77
77
|
prerelease: false
|
78
78
|
version_requirements: !ruby/object:Gem::Requirement
|
79
79
|
requirements:
|
80
|
-
- -
|
80
|
+
- - ~>
|
81
81
|
- !ruby/object:Gem::Version
|
82
82
|
version: '3.0'
|
83
83
|
description: A gem for driving the Packer command line tool from within your Ruby
|
@@ -88,9 +88,9 @@ executables: []
|
|
88
88
|
extensions: []
|
89
89
|
extra_rdoc_files: []
|
90
90
|
files:
|
91
|
-
-
|
92
|
-
-
|
93
|
-
-
|
91
|
+
- .gitignore
|
92
|
+
- .rspec
|
93
|
+
- .travis.yml
|
94
94
|
- Gemfile
|
95
95
|
- Guardfile
|
96
96
|
- LICENSE.txt
|
@@ -119,17 +119,17 @@ require_paths:
|
|
119
119
|
- lib
|
120
120
|
required_ruby_version: !ruby/object:Gem::Requirement
|
121
121
|
requirements:
|
122
|
-
- -
|
122
|
+
- - '>='
|
123
123
|
- !ruby/object:Gem::Version
|
124
124
|
version: '0'
|
125
125
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
126
126
|
requirements:
|
127
|
-
- -
|
127
|
+
- - '>='
|
128
128
|
- !ruby/object:Gem::Version
|
129
129
|
version: '0'
|
130
130
|
requirements: []
|
131
131
|
rubyforge_project:
|
132
|
-
rubygems_version: 2.
|
132
|
+
rubygems_version: 2.0.14
|
133
133
|
signing_key:
|
134
134
|
specification_version: 4
|
135
135
|
summary: A Packer CLI wrapper.
|