knife-pinnings 1.2.0 → 1.3.0

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: 6a2699df0d80bdc794dd6fa4dd7ab5cd68b348b2
4
- data.tar.gz: 028a425d3c3a9b10636d3e2b05a2f15d7869044e
3
+ metadata.gz: e2513585158f431721111e6e1f9ac0c81cc04f6f
4
+ data.tar.gz: 375f8e8645245063b8292a39f96596eaee35962d
5
5
  SHA512:
6
- metadata.gz: 480d615869421a930ffd2d62dbb467004ec02964f2603d748733c27c990b7fe55440ed055413b141d8c81f549b550ec634047356b66671bf837e6b2a5793bd59
7
- data.tar.gz: 87642ab2bddcc41a0d010a69b31adbcaf6ca26ec7f210e04077c4aac2db6505023ecfc13d6131d935c6c7cea3ead5b93a5351965447856e020997ab313df24e6
6
+ metadata.gz: 1b91f419025fb2deea338b75bd767a7024f9060df45d1b112e6d1104b08334c2ff320e3a299576cdd2de82cb8303a6b2aa8bd23085ff82aef06f1dba6fd6d940
7
+ data.tar.gz: 075ce2f502d4f9c76b29e4006be44ca534e6d70f4f6ed1d7964ffabd4de409b9d73fc9c4ec90234a997edb7eb0f2f0b54e3bed3b159834f681fcb394ef75b5b3
@@ -0,0 +1,37 @@
1
+ # Copyright 2015 Richard Nixon
2
+ #
3
+ # Licensed under the Apache License, Version 2.0 (the "License");
4
+ # you may not use this file except in compliance with the License.
5
+ # You may obtain a copy of the License at
6
+ #
7
+ # http://www.apache.org/licenses/LICENSE-2.0
8
+ #
9
+ # Unless required by applicable law or agreed to in writing, software
10
+ # distributed under the License is distributed on an "AS IS" BASIS,
11
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
+ # See the License for the specific language governing permissions and
13
+ # limitations under the License.
14
+
15
+ class Chef
16
+ class Knife
17
+ # This class implements knife pinnings get local METADATA_ITEM
18
+ class PinningsLocalCookbook < Chef::Knife
19
+ banner 'knife pinnings local cookbook METADATA_ITEM'
20
+
21
+ def run
22
+ @metadata = Chef::Cookbook::Metadata.new
23
+ @metadata.from_file(File.join(Dir.pwd, 'metadata.rb'))
24
+
25
+ result = ''
26
+ name_args.each do |name|
27
+ if @metadata.respond_to?(name)
28
+ result += @metadata.send(name).to_s + ' '
29
+ else
30
+ result += '_undefined_ '
31
+ end
32
+ end
33
+ ui.info result.chomp
34
+ end
35
+ end
36
+ end
37
+ end
@@ -76,18 +76,25 @@ def build_pinnings_table(environments, cookbook_regex)
76
76
  end
77
77
 
78
78
  def add_color(row)
79
- # The first element in the row is the cookbook name so skip that
80
- row[0] = ui.color(row[0], :white)
81
- row_color = 'green'
82
- row[2..row.size].each do |version|
83
- row_color = 'red' unless version == row[1]
84
- end
85
- for i in 1..row.size - 1
86
- row[i] = ui.color(row[i], row_color.to_sym)
79
+ label, *elements = row
80
+ label = ui.color(label, :white)
81
+
82
+ element_color = elements_identical?(elements) ? :green : :red
83
+
84
+ row = [label]
85
+ elements.each do |element|
86
+ row << ui.color(element, element_color)
87
87
  end
88
88
  row
89
89
  end
90
90
 
91
+ def elements_identical?(elements)
92
+ elements.each do |element|
93
+ return false unless element == elements.first
94
+ end
95
+ true
96
+ end
97
+
91
98
  def display_environments(environments, cookbook_regex)
92
99
  environments.each do |environment|
93
100
  ui.msg(ui.color(environment.name, :yellow))
@@ -22,7 +22,7 @@ class Chef
22
22
  case name_args.length
23
23
  when 1 # Just environment was specified so get name/version from metadata
24
24
  @metadata = Chef::Cookbook::Metadata.new
25
- @metadata.from_file(File.join(Dir.pwd,'metadata.rb'))
25
+ @metadata.from_file(File.join(Dir.pwd, 'metadata.rb'))
26
26
  @cookbook_name = @metadata.name
27
27
  @cookbook_version = @metadata.version
28
28
  when 3 # Environment, Cookbook and Version explicitly specified so use those
@@ -15,7 +15,7 @@
15
15
  # rubocop:disable Style/Documentation
16
16
  module Knife
17
17
  module Pinnings
18
- VERSION = '1.2.0'
18
+ VERSION = '1.3.0'
19
19
  MAJOR, MINOR, TINY = VERSION.split('.')
20
20
  end
21
21
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: knife-pinnings
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.2.0
4
+ version: 1.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Richard Nixon
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-04-02 00:00:00.000000000 Z
11
+ date: 2015-05-12 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: chef
@@ -155,6 +155,7 @@ files:
155
155
  - knife-pinnings.gemspec
156
156
  - lib/chef/knife/pinnings_compare.rb
157
157
  - lib/chef/knife/pinnings_list.rb
158
+ - lib/chef/knife/pinnings_local_cookbook.rb
158
159
  - lib/chef/knife/pinnings_mixin.rb
159
160
  - lib/chef/knife/pinnings_promote.rb
160
161
  - lib/chef/knife/pinnings_set.rb