opskeleton 0.2.1 → 0.3.0

Sign up to get free protection for your applications and to get access to all the features.
data/.ruby-version CHANGED
@@ -1 +1 @@
1
- ruby-1.9.3-p392
1
+ ruby-1.9.3-p429
data/Gemfile.lock CHANGED
@@ -1,18 +1,47 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- opskeleton (0.2.1)
4
+ opskeleton (0.3.0)
5
5
  thor
6
6
 
7
7
  GEM
8
8
  remote: https://rubygems.org/
9
9
  specs:
10
10
  coderay (1.0.9)
11
+ diff-lcs (1.2.4)
12
+ facter (1.7.1)
13
+ hiera (1.2.1)
14
+ json_pure
15
+ json_pure (1.8.0)
16
+ metaclass (0.0.1)
11
17
  method_source (0.8.1)
18
+ mocha (0.14.0)
19
+ metaclass (~> 0.0.1)
12
20
  pry (0.9.12)
13
21
  coderay (~> 1.0.5)
14
22
  method_source (~> 0.8)
15
23
  slop (~> 3.4)
24
+ puppet (3.2.1)
25
+ facter (~> 1.6)
26
+ hiera (~> 1.0)
27
+ rgen (~> 0.6)
28
+ puppetlabs_spec_helper (0.4.1)
29
+ mocha (>= 0.10.5)
30
+ rake
31
+ rspec (>= 2.9.0)
32
+ rspec-puppet (>= 0.1.1)
33
+ rake (10.0.4)
34
+ rgen (0.6.2)
35
+ rspec (2.13.0)
36
+ rspec-core (~> 2.13.0)
37
+ rspec-expectations (~> 2.13.0)
38
+ rspec-mocks (~> 2.13.0)
39
+ rspec-core (2.13.1)
40
+ rspec-expectations (2.13.0)
41
+ diff-lcs (>= 1.1.3, < 2.0)
42
+ rspec-mocks (2.13.1)
43
+ rspec-puppet (0.1.6)
44
+ rspec
16
45
  slop (3.4.4)
17
46
  thor (0.18.1)
18
47
 
@@ -22,3 +51,6 @@ PLATFORMS
22
51
  DEPENDENCIES
23
52
  opskeleton!
24
53
  pry
54
+ puppet
55
+ puppetlabs_spec_helper (>= 0.1.0)
56
+ rspec-puppet
data/bin/opsk CHANGED
@@ -7,39 +7,11 @@ require 'thor/runner'
7
7
  require 'thor/group'
8
8
  require 'opskeleton'
9
9
 
10
- module Opsk
11
- class Specgen < Thor::Group
12
- include Thor::Actions
13
-
14
- argument :name, :type => :string, :desc => "static module name"
15
-
16
- def self.source_root
17
- # during dev time
18
- if(File.dirname(__FILE__) == './bin')
19
- File.dirname('.')
20
- else
21
- "#{File.dirname(__FILE__)}/../"
22
- end
23
- end
24
-
25
- def create_spec_folders
26
- %w(classes defines functions hosts).each do |t|
27
- empty_directory("static-modules/#{name}/spec/#{t}")
28
- end
29
- end
30
-
31
- def create_class_spec
32
- template('templates/spec.erb', "static-modules/#{name}/spec/classes/")
33
- end
34
- end
35
- end
36
-
37
-
38
10
  module Opsk
39
11
  class Root < Thor
40
12
 
41
13
  register Opsk::Generate, 'generate', "generate [name] [box]", 'generates opskelaton project structure'
42
- register Opsk::Specgen, 'specgen', 'specgen [module]', 'generates rspec-puppet for static-modules/module'
14
+ register Opsk::Module, 'module', 'module [name]', 'generate an rspec ready Puppet module'
43
15
  register Opsk::Package, 'package', 'package', 'packages current module for celestial'
44
16
 
45
17
  desc 'version', 'print opsk version'
@@ -60,6 +60,10 @@ module Opsk
60
60
  copy_file('templates/LICENSE-2.0.txt',"#{path}/LICENSE-2.0.txt")
61
61
  end
62
62
 
63
+ def travis
64
+ template('templates/parent/travis.erb', "#{path}/.travis.yml")
65
+ end
66
+
63
67
  def git
64
68
  if(!File.exists?("#{path}/.git"))
65
69
  copy_file('templates/gitignore', "#{path}/.gitignore")
@@ -0,0 +1,34 @@
1
+ module Opsk
2
+ class Module < Thor::Group
3
+ include Thorable, Thor::Actions
4
+
5
+ argument :name, :type => :string, :desc => 'module name'
6
+
7
+ desc 'Generate an rspec enabled Puppet module'
8
+
9
+ def create_module
10
+ inside('static-modules') do
11
+ run("puppet module generate puppet-#{name}")
12
+ run("mv puppet-#{name} #{name}")
13
+ end
14
+ end
15
+
16
+ def rspec
17
+ inside("static-modules/#{name}/") do
18
+ run("rspec-puppet-init")
19
+ end
20
+ end
21
+
22
+ def create_rakefile
23
+ rakefile = "static-modules/#{name}/Rakefile"
24
+ remove_file(rakefile)
25
+ template('templates/module/Rakefile.erb',rakefile)
26
+ end
27
+
28
+ def spec_helper
29
+ spec_helper = "static-modules/#{name}/spec/spec_helper.rb"
30
+ remove_file(spec_helper)
31
+ template('templates/module/spec_helper.rb',spec_helper)
32
+ end
33
+ end
34
+ end
@@ -1,3 +1,3 @@
1
1
  module Opskeleton
2
- VERSION = "0.2.1"
2
+ VERSION = "0.3.0"
3
3
  end
data/lib/opskeleton.rb CHANGED
@@ -6,4 +6,5 @@ require 'ostruct'
6
6
  require 'opskeleton/thorable'
7
7
  require 'opskeleton/package'
8
8
  require 'opskeleton/generate'
9
+ require 'opskeleton/module'
9
10
 
data/opskeleton.gemspec CHANGED
@@ -12,6 +12,9 @@ Gem::Specification.new do |gem|
12
12
  gem.summary = %q{A generator for ops projects that include vagrant puppet and fpm}
13
13
  gem.homepage = "https://github.com/narkisr/opskeleton"
14
14
  gem.add_dependency('thor')
15
+ gem.add_development_dependency('puppet')
16
+ gem.add_development_dependency('rspec-puppet')
17
+ gem.add_development_dependency('puppetlabs_spec_helper', '>= 0.1.0')
15
18
  gem.add_development_dependency('pry')
16
19
 
17
20
  gem.files = `git ls-files`.split($/)
data/templates/Rakefile CHANGED
@@ -1,9 +1,15 @@
1
- require 'rake'
2
- require 'rspec/core/rake_task'
3
- require 'puppet-lint/tasks/puppet-lint'
4
-
5
- RSpec::Core::RakeTask.new(:spec) do |t|
6
- t.pattern = 'spec/*/*_spec.rb'
1
+ task :spec do
2
+ FileList["static-modules/**/Rakefile"].each do |project|
3
+ Rake::Task.clear
4
+ load project
5
+ dir = project.pathmap("%d")
6
+ Dir.chdir(dir) do
7
+ spec_task = Rake::Task[:spec]
8
+ spec_task.invoke()
9
+ end
10
+ end
7
11
  end
8
12
 
9
- task :default => [:spec, :lint]
13
+ require 'puppet-lint/tasks/puppet-lint'
14
+ PuppetLint.configuration.ignore_paths =['modules/**/*']
15
+ PuppetLint.configuration.send("disable_80chars")
data/templates/gemfile CHANGED
@@ -1,9 +1,14 @@
1
- # opskelaton Gems
2
1
  source "https://rubygems.org"
3
2
 
3
+ # base
4
4
  gem 'puppet'
5
+
6
+ # testing
7
+ gem 'rspec-puppet'
8
+ gem 'puppetlabs_spec_helper', '>= 0.1.0'
9
+
10
+ # build
5
11
  gem 'puppet-lint'
6
- gem 'librarian-puppet'
7
12
  gem 'rake'
8
- gem 'rspec-puppet'
13
+ gem 'librarian-puppet'
9
14
  gem 'opskeleton'
@@ -0,0 +1,22 @@
1
+ require 'rubygems'
2
+ require 'rake'
3
+ require 'rspec/core/rake_task'
4
+ require 'puppet-lint/tasks/puppet-lint'
5
+
6
+ link = 'spec/fixtures/modules/<%=name%>/manifests'
7
+ target = 'spec/fixtures/modules/<%=name%>/'
8
+
9
+ task :link do
10
+ FileUtils.mkdir_p target
11
+ symlink('../../../../manifests',link) unless File.exists?(link)
12
+ end
13
+
14
+ RSpec::Core::RakeTask.new(:spec) do |t|
15
+ t.pattern = 'spec/*/*_spec.rb'
16
+ end
17
+
18
+ task :default => [:link,:spec]
19
+
20
+ PuppetLint.configuration.ignore_paths =['modules/**/*']
21
+ PuppetLint.configuration.send("disable_80chars")
22
+
@@ -0,0 +1,8 @@
1
+ require 'rspec-puppet'
2
+
3
+ fixture_path = File.expand_path(File.join(__FILE__, '..', 'fixtures'))
4
+
5
+ RSpec.configure do |c|
6
+ c.module_path = "#{File.join(fixture_path, 'modules')}:modules"
7
+ c.manifest_dir = File.join(fixture_path, 'manifests')
8
+ end
@@ -0,0 +1,8 @@
1
+ language: ruby
2
+ rvm:
3
+ - 1.9.3
4
+ script:
5
+ - "librarian-puppet install"
6
+ - "rake lint"
7
+ - "rake spec"
8
+
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: opskeleton
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.1
4
+ version: 0.3.0
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2013-04-28 00:00:00.000000000 Z
12
+ date: 2013-06-16 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: thor
@@ -27,6 +27,54 @@ dependencies:
27
27
  - - ! '>='
28
28
  - !ruby/object:Gem::Version
29
29
  version: '0'
30
+ - !ruby/object:Gem::Dependency
31
+ name: puppet
32
+ requirement: !ruby/object:Gem::Requirement
33
+ none: false
34
+ requirements:
35
+ - - ! '>='
36
+ - !ruby/object:Gem::Version
37
+ version: '0'
38
+ type: :development
39
+ prerelease: false
40
+ version_requirements: !ruby/object:Gem::Requirement
41
+ none: false
42
+ requirements:
43
+ - - ! '>='
44
+ - !ruby/object:Gem::Version
45
+ version: '0'
46
+ - !ruby/object:Gem::Dependency
47
+ name: rspec-puppet
48
+ requirement: !ruby/object:Gem::Requirement
49
+ none: false
50
+ requirements:
51
+ - - ! '>='
52
+ - !ruby/object:Gem::Version
53
+ version: '0'
54
+ type: :development
55
+ prerelease: false
56
+ version_requirements: !ruby/object:Gem::Requirement
57
+ none: false
58
+ requirements:
59
+ - - ! '>='
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
62
+ - !ruby/object:Gem::Dependency
63
+ name: puppetlabs_spec_helper
64
+ requirement: !ruby/object:Gem::Requirement
65
+ none: false
66
+ requirements:
67
+ - - ! '>='
68
+ - !ruby/object:Gem::Version
69
+ version: 0.1.0
70
+ type: :development
71
+ prerelease: false
72
+ version_requirements: !ruby/object:Gem::Requirement
73
+ none: false
74
+ requirements:
75
+ - - ! '>='
76
+ - !ruby/object:Gem::Version
77
+ version: 0.1.0
30
78
  - !ruby/object:Gem::Dependency
31
79
  name: pry
32
80
  requirement: !ruby/object:Gem::Requirement
@@ -65,6 +113,7 @@ files:
65
113
  - bin/opsk
66
114
  - lib/opskeleton.rb
67
115
  - lib/opskeleton/generate.rb
116
+ - lib/opskeleton/module.rb
68
117
  - lib/opskeleton/package.rb
69
118
  - lib/opskeleton/thorable.rb
70
119
  - lib/opskeleton/version.rb
@@ -77,7 +126,10 @@ files:
77
126
  - templates/gitignore
78
127
  - templates/hiera.yaml
79
128
  - templates/hiera_vagrant.yaml
129
+ - templates/module/Rakefile.erb
130
+ - templates/module/spec_helper.rb
80
131
  - templates/opsk.yml
132
+ - templates/parent/travis.erb
81
133
  - templates/puppet/default.erb
82
134
  - templates/puppet/site.erb
83
135
  - templates/puppetfile.erb
@@ -103,12 +155,18 @@ required_ruby_version: !ruby/object:Gem::Requirement
103
155
  - - ! '>='
104
156
  - !ruby/object:Gem::Version
105
157
  version: '0'
158
+ segments:
159
+ - 0
160
+ hash: -3993076141945134336
106
161
  required_rubygems_version: !ruby/object:Gem::Requirement
107
162
  none: false
108
163
  requirements:
109
164
  - - ! '>='
110
165
  - !ruby/object:Gem::Version
111
166
  version: '0'
167
+ segments:
168
+ - 0
169
+ hash: -3993076141945134336
112
170
  requirements: []
113
171
  rubyforge_project:
114
172
  rubygems_version: 1.8.25