chef-rundeck 0.2.0 → 1.0.0
Sign up to get free protection for your applications and to get access to all the features.
- 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
|
+
[![Gem Version](https://badge.fury.io/rb/chef-rundeck.png)](http://badge.fury.io/rb/chef-rundeck)
|
3
|
+
[![Build Status](https://secure.travis-ci.org/oswaldlabs/chef-rundeck.png?branch=master)](http://travis-ci.org/oswaldlabs/chef-rundeck)
|
4
|
+
[![Dependency Status](https://gemnasium.com/oswaldlabs/chef-rundeck.png?travis)](https://gemnasium.com/oswaldlabs/chef-rundeck)
|
5
|
+
[![Code Climate](https://codeclimate.com/github/oswaldlabs/chef-rundeck.png)](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
|
-
|