chef-rundeck 0.2.0 → 1.0.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.
- data/README.md +31 -0
- data/Rakefile +1 -2
- data/VERSION +1 -1
- data/bin/chef-rundeck +33 -5
- data/lib/chef-rundeck.rb +24 -11
- data/spec/chef-rundeck_spec.rb +17 -4
- data/spec/spec_helper.rb +16 -4
- metadata +76 -17
- data/README.rdoc +0 -19
- data/chef-rundeck.gemspec +0 -63
data/README.md
ADDED
@@ -0,0 +1,31 @@
|
|
1
|
+
# chef-rundeck
|
2
|
+
[](http://badge.fury.io/rb/chef-rundeck)
|
3
|
+
[](http://travis-ci.org/oswaldlabs/chef-rundeck)
|
4
|
+
[](https://gemnasium.com/oswaldlabs/chef-rundeck)
|
5
|
+
[](https://codeclimate.com/github/oswaldlabs/chef-rundeck)
|
6
|
+
|
7
|
+
A simple Sinatra app that presents matching node results of a Chef search formatted as a RunDeck resource list.
|
8
|
+
|
9
|
+
## Usage
|
10
|
+
|
11
|
+
Install the gem and fire up chef-rundeck. Point it at a Chef client config file (a knife config would be ideal) and provide the URI for your Chef server's web UI.
|
12
|
+
|
13
|
+
## Configuration Notes
|
14
|
+
|
15
|
+
More to come.
|
16
|
+
|
17
|
+
## Notes on Patches/Pull Requests
|
18
|
+
|
19
|
+
We want your cool additional feature. Here's how to give it to us:
|
20
|
+
|
21
|
+
* Fork the project.
|
22
|
+
* Make your feature addition or bug fix.
|
23
|
+
* Add tests for it. *THIS IS IMPORTANT* as it ensures no one else will break your feature accidentally somewhere down the line.
|
24
|
+
* If you're adding a feature, please also add documentation.
|
25
|
+
* *Exception:* Please don't change the Rakefile, version or history files!
|
26
|
+
* Commit your changes and push them to your GitHub repo. Bonus points for committing your changes to a named topic branch ("awesome_new_feature" > "master")
|
27
|
+
* Send us a pull request through the GitHub UI.
|
28
|
+
|
29
|
+
# Copyright
|
30
|
+
|
31
|
+
Original code © 2010 Adam Jacob. Released to the open source community under the Apache license in 2013. See the LICENSE file for details.
|
data/Rakefile
CHANGED
@@ -23,6 +23,7 @@ rescue LoadError
|
|
23
23
|
end
|
24
24
|
|
25
25
|
require 'rspec/core/rake_task'
|
26
|
+
ENV['TRAVIS_BUILD_DIR'] = "." unless ENV.has_key?('TRAVIS_BUILD_DIR')
|
26
27
|
RSpec::Core::RakeTask.new(:spec) do |spec|
|
27
28
|
spec.rspec_opts = [ '-I', 'lib', '-I', 'spec' ]
|
28
29
|
spec.pattern = FileList['spec/**/*_spec.rb']
|
@@ -34,8 +35,6 @@ RSpec::Core::RakeTask.new(:rcov) do |spec|
|
|
34
35
|
spec.rcov = true
|
35
36
|
end
|
36
37
|
|
37
|
-
task :spec => :check_dependencies
|
38
|
-
|
39
38
|
task :default => :spec
|
40
39
|
|
41
40
|
begin
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.
|
1
|
+
1.0.0
|
data/bin/chef-rundeck
CHANGED
@@ -23,12 +23,22 @@ require 'mixlib/cli'
|
|
23
23
|
|
24
24
|
class ChefRundeckCLI
|
25
25
|
include Mixlib::CLI
|
26
|
+
|
27
|
+
option :api_url,
|
28
|
+
:short => "-a API_URL",
|
29
|
+
:long => "--api-url API_URL",
|
30
|
+
:description => "The base URL of the Chef REST API"
|
31
|
+
|
32
|
+
option :client_key,
|
33
|
+
:short => "-k KEYFILE",
|
34
|
+
:long => "--key-file KEYFILE",
|
35
|
+
:description => "The client.pem to sign requests"
|
26
36
|
|
27
37
|
option :config_file,
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
38
|
+
:short => "-c CONFIG",
|
39
|
+
:long => "--config CONFIG",
|
40
|
+
:default => 'config.rb',
|
41
|
+
:description => "The Chef configuration file to use"
|
32
42
|
|
33
43
|
option :username,
|
34
44
|
:short => "-u USERNAME",
|
@@ -39,13 +49,20 @@ class ChefRundeckCLI
|
|
39
49
|
option :web_ui_url,
|
40
50
|
:short => "-w WEB_UI_URL",
|
41
51
|
:long => "--web-ui-url WEB_UI_URL",
|
42
|
-
:description => "The base URL of the Chef Web UI"
|
52
|
+
:description => "The base URL of the Chef Web UI",
|
53
|
+
:default => "https://manage.opscode.com"
|
43
54
|
|
44
55
|
option :port,
|
45
56
|
:short => "-p PORT",
|
46
57
|
:long => "--port PORT",
|
47
58
|
:description => "The port to run on, default 9980",
|
48
59
|
:default => 9980
|
60
|
+
|
61
|
+
option :pidfile,
|
62
|
+
:short => "-P FILE",
|
63
|
+
:long => "--pidfile FILE",
|
64
|
+
:description => "Prefix for our PID file, default: /var/run/chef-rundeck- ('PORT.pid' will be added)",
|
65
|
+
:default => "/var/run/chef-rundeck"
|
49
66
|
end
|
50
67
|
|
51
68
|
cli = ChefRundeckCLI.new
|
@@ -54,7 +71,18 @@ cli.parse_options
|
|
54
71
|
ChefRundeck.config_file = cli.config[:config_file]
|
55
72
|
ChefRundeck.username = cli.config[:username]
|
56
73
|
ChefRundeck.web_ui_url = cli.config[:web_ui_url]
|
74
|
+
ChefRundeck.api_url = cli.config[:api_url]
|
75
|
+
ChefRundeck.client_key = cli.config[:client_key]
|
57
76
|
ChefRundeck.configure
|
58
77
|
|
78
|
+
begin
|
79
|
+
pid = "#{cli.config[:pidfile]}-#{cli.config[:port]}.pid"
|
80
|
+
puts "Writing to #{pid}"
|
81
|
+
File.open(pid, 'w'){ |f| f.write(Process.pid) }
|
82
|
+
at_exit { File.delete(pid) if File.exist?(pid) }
|
83
|
+
rescue Exception => e
|
84
|
+
puts "== Error writing pid file #{pid}!"
|
85
|
+
end
|
86
|
+
|
59
87
|
ChefRundeck.run! :host => 'localhost', :port => cli.config[:port]
|
60
88
|
|
data/lib/chef-rundeck.rb
CHANGED
@@ -1,12 +1,12 @@
|
|
1
1
|
#
|
2
2
|
# Copyright 2010, Opscode, Inc.
|
3
|
-
#
|
3
|
+
#
|
4
4
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
5
5
|
# you may not use this file except in compliance with the License.
|
6
6
|
# You may obtain a copy of the License at
|
7
|
-
#
|
7
|
+
#
|
8
8
|
# http://www.apache.org/licenses/LICENSE-2.0
|
9
|
-
#
|
9
|
+
#
|
10
10
|
# Unless required by applicable law or agreed to in writing, software
|
11
11
|
# distributed under the License is distributed on an "AS IS" BASIS,
|
12
12
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
@@ -18,6 +18,7 @@ require 'sinatra/base'
|
|
18
18
|
require 'chef'
|
19
19
|
require 'chef/node'
|
20
20
|
require 'chef/mixin/xml_escape'
|
21
|
+
require 'chef/rest'
|
21
22
|
|
22
23
|
class ChefRundeck < Sinatra::Base
|
23
24
|
|
@@ -26,39 +27,51 @@ class ChefRundeck < Sinatra::Base
|
|
26
27
|
class << self
|
27
28
|
attr_accessor :config_file
|
28
29
|
attr_accessor :username
|
30
|
+
attr_accessor :api_url
|
29
31
|
attr_accessor :web_ui_url
|
32
|
+
attr_accessor :client_key
|
30
33
|
|
31
34
|
def configure
|
32
35
|
Chef::Config.from_file(ChefRundeck.config_file)
|
33
36
|
Chef::Log.level = Chef::Config[:log_level]
|
37
|
+
|
38
|
+
unless ChefRundeck.api_url
|
39
|
+
ChefRundeck.api_url = Chef::Config[:chef_server_url]
|
40
|
+
end
|
41
|
+
|
42
|
+
unless ChefRundeck.client_key
|
43
|
+
ChefRundeck.client_key = Chef::Config[:client_key]
|
44
|
+
end
|
34
45
|
end
|
35
46
|
end
|
36
47
|
|
37
48
|
get '/' do
|
38
49
|
content_type 'text/xml'
|
39
50
|
response = '<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE project PUBLIC "-//DTO Labs Inc.//DTD Resources Document 1.0//EN" "project.dtd"><project>'
|
40
|
-
Chef::
|
41
|
-
|
51
|
+
rest = Chef::REST.new(ChefRundeck.api_url, ChefRundeck.username, ChefRundeck.client_key)
|
52
|
+
nodes = rest.get_rest("/nodes/")
|
53
|
+
|
54
|
+
nodes.keys.each do |node_name|
|
55
|
+
node = rest.get_rest("/nodes/#{node_name}")
|
42
56
|
#--
|
43
57
|
# Certain features in Rundeck require the osFamily value to be set to 'unix' to work appropriately. - SRK
|
44
58
|
#++
|
45
59
|
os_family = node[:kernel][:os] =~ /windows/i ? 'windows' : 'unix'
|
46
60
|
response << <<-EOH
|
47
|
-
<node name="#{xml_escape(node[:fqdn])}"
|
48
|
-
type="Node"
|
49
|
-
description="#{xml_escape(
|
61
|
+
<node name="#{xml_escape(node[:fqdn])}"
|
62
|
+
type="Node"
|
63
|
+
description="#{xml_escape(node_name)}"
|
50
64
|
osArch="#{xml_escape(node[:kernel][:machine])}"
|
51
65
|
osFamily="#{xml_escape(os_family)}"
|
52
66
|
osName="#{xml_escape(node[:platform])}"
|
53
67
|
osVersion="#{xml_escape(node[:platform_version])}"
|
54
|
-
tags="#{xml_escape([node.chef_environment, node.run_list.roles.join(',')].join(','))}"
|
68
|
+
tags="#{xml_escape([node.chef_environment, node[:tags].join(','), node.run_list.roles.join(',')].join(','))}"
|
55
69
|
username="#{xml_escape(ChefRundeck.username)}"
|
56
70
|
hostname="#{xml_escape(node[:fqdn])}"
|
57
|
-
editUrl="#{xml_escape(ChefRundeck.web_ui_url)}/nodes/#{xml_escape(
|
71
|
+
editUrl="#{xml_escape(ChefRundeck.web_ui_url)}/nodes/#{xml_escape(node_name)}/edit"/>
|
58
72
|
EOH
|
59
73
|
end
|
60
74
|
response << "</project>"
|
61
75
|
response
|
62
76
|
end
|
63
77
|
end
|
64
|
-
|
data/spec/chef-rundeck_spec.rb
CHANGED
@@ -1,7 +1,20 @@
|
|
1
|
-
require
|
1
|
+
require 'spec_helper'
|
2
|
+
require 'nokogiri'
|
2
3
|
|
3
|
-
describe
|
4
|
-
|
5
|
-
|
4
|
+
describe 'ChefRundeck' do
|
5
|
+
before do
|
6
|
+
# setup for the following tests
|
7
|
+
ChefRundeck.config_file = "#{ENV['TRAVIS_BUILD_DIR']}/spec/support/client.rb"
|
8
|
+
ChefRundeck.username = ENV['USER']
|
9
|
+
ChefRundeck.web_ui_url = 'https://manage.opscode.com'
|
10
|
+
ChefRundeck.configure
|
11
|
+
end
|
12
|
+
it 'fetch to root should return 200' do
|
13
|
+
get '/'
|
14
|
+
last_response.should be_ok
|
15
|
+
end
|
16
|
+
it 'fetched document should be Nokogiri-parseable XML document' do
|
17
|
+
get '/'
|
18
|
+
Nokogiri::XML(last_response.body).document.should be_true
|
6
19
|
end
|
7
20
|
end
|
data/spec/spec_helper.rb
CHANGED
@@ -1,9 +1,21 @@
|
|
1
1
|
$LOAD_PATH.unshift(File.dirname(__FILE__))
|
2
2
|
$LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
|
3
3
|
require 'chef-rundeck'
|
4
|
-
require '
|
5
|
-
require '
|
4
|
+
require 'sinatra'
|
5
|
+
require 'rspec'
|
6
|
+
require 'rspec/autorun'
|
7
|
+
require 'rack/test'
|
6
8
|
|
7
|
-
|
8
|
-
|
9
|
+
|
10
|
+
set :environment, :test
|
11
|
+
set :run, false
|
12
|
+
set :raise_errors, true
|
13
|
+
set :logging, false
|
14
|
+
|
15
|
+
def app
|
16
|
+
ChefRundeck.new
|
17
|
+
end
|
18
|
+
|
19
|
+
RSpec.configure do |config|
|
20
|
+
config.include Rack::Test::Methods
|
9
21
|
end
|
metadata
CHANGED
@@ -1,11 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: chef-rundeck
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 1.0.0
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
8
8
|
- Adam Jacob
|
9
|
+
- Brian Scott
|
10
|
+
- Steven Wagner
|
9
11
|
autorequire:
|
10
12
|
bindir: bin
|
11
13
|
cert_chain: []
|
@@ -13,7 +15,7 @@ date: 2011-11-07 00:00:00.000000000 Z
|
|
13
15
|
dependencies:
|
14
16
|
- !ruby/object:Gem::Dependency
|
15
17
|
name: sinatra
|
16
|
-
requirement:
|
18
|
+
requirement: !ruby/object:Gem::Requirement
|
17
19
|
none: false
|
18
20
|
requirements:
|
19
21
|
- - ! '>='
|
@@ -21,10 +23,15 @@ dependencies:
|
|
21
23
|
version: '0'
|
22
24
|
type: :runtime
|
23
25
|
prerelease: false
|
24
|
-
version_requirements:
|
26
|
+
version_requirements: !ruby/object:Gem::Requirement
|
27
|
+
none: false
|
28
|
+
requirements:
|
29
|
+
- - ! '>='
|
30
|
+
- !ruby/object:Gem::Version
|
31
|
+
version: '0'
|
25
32
|
- !ruby/object:Gem::Dependency
|
26
33
|
name: chef
|
27
|
-
requirement:
|
34
|
+
requirement: !ruby/object:Gem::Requirement
|
28
35
|
none: false
|
29
36
|
requirements:
|
30
37
|
- - ! '>='
|
@@ -32,10 +39,15 @@ dependencies:
|
|
32
39
|
version: '0'
|
33
40
|
type: :runtime
|
34
41
|
prerelease: false
|
35
|
-
version_requirements:
|
42
|
+
version_requirements: !ruby/object:Gem::Requirement
|
43
|
+
none: false
|
44
|
+
requirements:
|
45
|
+
- - ! '>='
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: '0'
|
36
48
|
- !ruby/object:Gem::Dependency
|
37
49
|
name: mixlib-cli
|
38
|
-
requirement:
|
50
|
+
requirement: !ruby/object:Gem::Requirement
|
39
51
|
none: false
|
40
52
|
requirements:
|
41
53
|
- - ! '>='
|
@@ -43,10 +55,15 @@ dependencies:
|
|
43
55
|
version: '0'
|
44
56
|
type: :runtime
|
45
57
|
prerelease: false
|
46
|
-
version_requirements:
|
58
|
+
version_requirements: !ruby/object:Gem::Requirement
|
59
|
+
none: false
|
60
|
+
requirements:
|
61
|
+
- - ! '>='
|
62
|
+
- !ruby/object:Gem::Version
|
63
|
+
version: '0'
|
47
64
|
- !ruby/object:Gem::Dependency
|
48
65
|
name: rspec
|
49
|
-
requirement:
|
66
|
+
requirement: !ruby/object:Gem::Requirement
|
50
67
|
none: false
|
51
68
|
requirements:
|
52
69
|
- - ! '>='
|
@@ -54,10 +71,15 @@ dependencies:
|
|
54
71
|
version: 1.2.9
|
55
72
|
type: :development
|
56
73
|
prerelease: false
|
57
|
-
version_requirements:
|
74
|
+
version_requirements: !ruby/object:Gem::Requirement
|
75
|
+
none: false
|
76
|
+
requirements:
|
77
|
+
- - ! '>='
|
78
|
+
- !ruby/object:Gem::Version
|
79
|
+
version: 1.2.9
|
58
80
|
- !ruby/object:Gem::Dependency
|
59
81
|
name: yard
|
60
|
-
requirement:
|
82
|
+
requirement: !ruby/object:Gem::Requirement
|
61
83
|
none: false
|
62
84
|
requirements:
|
63
85
|
- - ! '>='
|
@@ -65,29 +87,65 @@ dependencies:
|
|
65
87
|
version: '0'
|
66
88
|
type: :development
|
67
89
|
prerelease: false
|
68
|
-
version_requirements:
|
90
|
+
version_requirements: !ruby/object:Gem::Requirement
|
91
|
+
none: false
|
92
|
+
requirements:
|
93
|
+
- - ! '>='
|
94
|
+
- !ruby/object:Gem::Version
|
95
|
+
version: '0'
|
96
|
+
- !ruby/object:Gem::Dependency
|
97
|
+
name: rack-test
|
98
|
+
requirement: !ruby/object:Gem::Requirement
|
99
|
+
none: false
|
100
|
+
requirements:
|
101
|
+
- - ! '>='
|
102
|
+
- !ruby/object:Gem::Version
|
103
|
+
version: '0'
|
104
|
+
type: :development
|
105
|
+
prerelease: false
|
106
|
+
version_requirements: !ruby/object:Gem::Requirement
|
107
|
+
none: false
|
108
|
+
requirements:
|
109
|
+
- - ! '>='
|
110
|
+
- !ruby/object:Gem::Version
|
111
|
+
version: '0'
|
112
|
+
- !ruby/object:Gem::Dependency
|
113
|
+
name: nokogiri
|
114
|
+
requirement: !ruby/object:Gem::Requirement
|
115
|
+
none: false
|
116
|
+
requirements:
|
117
|
+
- - ! '>='
|
118
|
+
- !ruby/object:Gem::Version
|
119
|
+
version: '0'
|
120
|
+
type: :development
|
121
|
+
prerelease: false
|
122
|
+
version_requirements: !ruby/object:Gem::Requirement
|
123
|
+
none: false
|
124
|
+
requirements:
|
125
|
+
- - ! '>='
|
126
|
+
- !ruby/object:Gem::Version
|
127
|
+
version: '0'
|
69
128
|
description: Provides a resource endpoint for RunDeck from a Chef Server
|
70
|
-
email:
|
129
|
+
email: brainscott@gmail.com
|
71
130
|
executables:
|
72
131
|
- chef-rundeck
|
73
132
|
extensions: []
|
74
133
|
extra_rdoc_files:
|
75
134
|
- LICENSE
|
76
|
-
- README.
|
135
|
+
- README.md
|
77
136
|
files:
|
78
137
|
- .document
|
79
138
|
- LICENSE
|
80
139
|
- NOTICE
|
81
|
-
- README.
|
140
|
+
- README.md
|
82
141
|
- Rakefile
|
83
142
|
- VERSION
|
84
143
|
- bin/chef-rundeck
|
85
|
-
- chef-rundeck.gemspec
|
86
144
|
- lib/chef-rundeck.rb
|
87
145
|
- spec/chef-rundeck_spec.rb
|
88
146
|
- spec/spec.opts
|
89
147
|
- spec/spec_helper.rb
|
90
|
-
homepage: http://github.com/
|
148
|
+
homepage: http://github.com/oswaldlabs/chef-rundeck
|
91
149
|
licenses: []
|
92
150
|
post_install_message:
|
93
151
|
rdoc_options: []
|
@@ -107,8 +165,9 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
107
165
|
version: '0'
|
108
166
|
requirements: []
|
109
167
|
rubyforge_project:
|
110
|
-
rubygems_version: 1.8.
|
168
|
+
rubygems_version: 1.8.25
|
111
169
|
signing_key:
|
112
170
|
specification_version: 3
|
113
171
|
summary: Integrates Chef with RunDeck
|
114
172
|
test_files: []
|
173
|
+
has_rdoc:
|
data/README.rdoc
DELETED
@@ -1,19 +0,0 @@
|
|
1
|
-
= chef-rundeck
|
2
|
-
|
3
|
-
Integrates Chef with RunDeck.
|
4
|
-
|
5
|
-
Install the gem and fire up chef-rundeck - point it at a Chef Client configuration file (the one you use for knife would be ideal), and provide the URI for your Chef Server Web UI.
|
6
|
-
|
7
|
-
== Note on Patches/Pull Requests
|
8
|
-
|
9
|
-
* Fork the project.
|
10
|
-
* Make your feature addition or bug fix.
|
11
|
-
* Add tests for it. This is important so I don't break it in a
|
12
|
-
future version unintentionally.
|
13
|
-
* Commit, do not mess with rakefile, version, or history.
|
14
|
-
(if you want to have your own version, that is fine but bump version in a commit by itself I can ignore when I pull)
|
15
|
-
* Send me a pull request. Bonus points for topic branches.
|
16
|
-
|
17
|
-
== Copyright
|
18
|
-
|
19
|
-
Copyright (c) 2010 Adam Jacob. See LICENSE for details.
|
data/chef-rundeck.gemspec
DELETED
@@ -1,63 +0,0 @@
|
|
1
|
-
# Generated by jeweler
|
2
|
-
# DO NOT EDIT THIS FILE DIRECTLY
|
3
|
-
# Instead, edit Jeweler::Tasks in Rakefile, and run 'rake gemspec'
|
4
|
-
# -*- encoding: utf-8 -*-
|
5
|
-
|
6
|
-
Gem::Specification.new do |s|
|
7
|
-
s.name = "chef-rundeck"
|
8
|
-
s.version = "0.2.0"
|
9
|
-
|
10
|
-
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
|
-
s.authors = ["Adam Jacob"]
|
12
|
-
s.date = "2011-11-07"
|
13
|
-
s.description = "Provides a resource endpoint for RunDeck from a Chef Server"
|
14
|
-
s.email = "adam@opscode.com"
|
15
|
-
s.executables = ["chef-rundeck"]
|
16
|
-
s.extra_rdoc_files = [
|
17
|
-
"LICENSE",
|
18
|
-
"README.rdoc"
|
19
|
-
]
|
20
|
-
s.files = [
|
21
|
-
".document",
|
22
|
-
"LICENSE",
|
23
|
-
"NOTICE",
|
24
|
-
"README.rdoc",
|
25
|
-
"Rakefile",
|
26
|
-
"VERSION",
|
27
|
-
"bin/chef-rundeck",
|
28
|
-
"chef-rundeck.gemspec",
|
29
|
-
"lib/chef-rundeck.rb",
|
30
|
-
"spec/chef-rundeck_spec.rb",
|
31
|
-
"spec/spec.opts",
|
32
|
-
"spec/spec_helper.rb"
|
33
|
-
]
|
34
|
-
s.homepage = "http://github.com/opscode/chef-rundeck"
|
35
|
-
s.require_paths = ["lib"]
|
36
|
-
s.rubygems_version = "1.8.10"
|
37
|
-
s.summary = "Integrates Chef with RunDeck"
|
38
|
-
|
39
|
-
if s.respond_to? :specification_version then
|
40
|
-
s.specification_version = 3
|
41
|
-
|
42
|
-
if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
|
43
|
-
s.add_runtime_dependency(%q<sinatra>, [">= 0"])
|
44
|
-
s.add_runtime_dependency(%q<chef>, [">= 0"])
|
45
|
-
s.add_runtime_dependency(%q<mixlib-cli>, [">= 0"])
|
46
|
-
s.add_development_dependency(%q<rspec>, [">= 1.2.9"])
|
47
|
-
s.add_development_dependency(%q<yard>, [">= 0"])
|
48
|
-
else
|
49
|
-
s.add_dependency(%q<sinatra>, [">= 0"])
|
50
|
-
s.add_dependency(%q<chef>, [">= 0"])
|
51
|
-
s.add_dependency(%q<mixlib-cli>, [">= 0"])
|
52
|
-
s.add_dependency(%q<rspec>, [">= 1.2.9"])
|
53
|
-
s.add_dependency(%q<yard>, [">= 0"])
|
54
|
-
end
|
55
|
-
else
|
56
|
-
s.add_dependency(%q<sinatra>, [">= 0"])
|
57
|
-
s.add_dependency(%q<chef>, [">= 0"])
|
58
|
-
s.add_dependency(%q<mixlib-cli>, [">= 0"])
|
59
|
-
s.add_dependency(%q<rspec>, [">= 1.2.9"])
|
60
|
-
s.add_dependency(%q<yard>, [">= 0"])
|
61
|
-
end
|
62
|
-
end
|
63
|
-
|