vagrant-boxen 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
data/.gitignore ADDED
@@ -0,0 +1,21 @@
1
+ *.gem
2
+ *.rbc
3
+ .bundle
4
+ .config
5
+ .yardoc
6
+ .librarian/
7
+ Gemfile.lock
8
+ InstalledFiles
9
+ _yardoc
10
+ coverage
11
+ doc/
12
+ lib/bundler/man
13
+ pkg
14
+ rdoc
15
+ spec/reports
16
+ test/tmp
17
+ test/version_tmp
18
+ tmp
19
+ .vagrant
20
+ .tmp/
21
+ coverage/
data/.rspec ADDED
@@ -0,0 +1,2 @@
1
+ --color
2
+ --format progress
data/.travis.yml ADDED
@@ -0,0 +1,7 @@
1
+ language: ruby
2
+ before_script:
3
+ - sudo apt-get -y install linux-headers-$(uname -r)
4
+ - sudo apt-get install virtualbox
5
+ rvm:
6
+ - 1.9.3
7
+ - 1.8.7
data/Gemfile ADDED
@@ -0,0 +1,9 @@
1
+ source 'https://rubygems.org'
2
+
3
+ gemspec
4
+
5
+ gem 'debugger'
6
+
7
+ gem 'rb-inotify', '~> 0.8.8'
8
+ gem 'guard'
9
+ gem 'guard-rspec'
data/Guardfile ADDED
@@ -0,0 +1,5 @@
1
+ guard 'rspec' do
2
+ watch(%r{^spec/.+_spec\.rb$})
3
+ watch(%r{^lib/vagrant-boxen/(.+)\.rb$}) { |m| "spec/unit/#{m[1]}_spec.rb" }
4
+ watch('spec/spec_helper.rb') { "spec" }
5
+ end
data/LICENSE.txt ADDED
@@ -0,0 +1,22 @@
1
+ Copyright (c) 2013 Fabio Rehm
2
+
3
+ MIT License
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining
6
+ a copy of this software and associated documentation files (the
7
+ "Software"), to deal in the Software without restriction, including
8
+ without limitation the rights to use, copy, modify, merge, publish,
9
+ distribute, sublicense, and/or sell copies of the Software, and to
10
+ permit persons to whom the Software is furnished to do so, subject to
11
+ the following conditions:
12
+
13
+ The above copyright notice and this permission notice shall be
14
+ included in all copies or substantial portions of the Software.
15
+
16
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
17
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
18
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
19
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
20
+ LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
21
+ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
22
+ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
data/Puppetfile ADDED
@@ -0,0 +1,3 @@
1
+ forge "http://forge.puppetlabs.com"
2
+
3
+ mod 'memcached', :git => 'https://github.com/saz/puppet-memcached.git'
data/Puppetfile.lock ADDED
@@ -0,0 +1,10 @@
1
+ GIT
2
+ remote: https://github.com/saz/puppet-memcached.git
3
+ ref: master
4
+ sha: 51af7b08b145eacf55409147bc142b610a8db0ac
5
+ specs:
6
+ memcached (2.1.0)
7
+
8
+ DEPENDENCIES
9
+ memcached (>= 0)
10
+
data/README.md ADDED
@@ -0,0 +1,63 @@
1
+ # Vagrant::Boxen
2
+
3
+ [![Build Status](https://travis-ci.org/fgrehm/vagrant-boxen.png)](https://travis-ci.org/fgrehm/vagrant-boxen)
4
+ [![Code Climate](https://codeclimate.com/badge.png)](https://codeclimate.com/github/fgrehm/vagrant-boxen)
5
+
6
+ Inspired by [Rails Wizard](http://railswizard.org/) and GitHub's
7
+ [Boxen](http://boxen.github.com/), this gem attempts to lower the "entry barrier"
8
+ of getting a manageable Vagrant machine targetted for development up and
9
+ running without the need to learn [Puppet](https://puppetlabs.com/puppet/what-is-puppet/)
10
+ or [Chef](http://www.opscode.com/chef/).
11
+
12
+
13
+ ## Installation
14
+
15
+ If you use the gem version of Vagrant, use:
16
+
17
+ ```terminal
18
+ $ gem install vagrant-boxen
19
+ ```
20
+
21
+ otherwise, use:
22
+
23
+ ```terminal
24
+ $ vagrant gem install vagrant-boxen
25
+ ```
26
+
27
+
28
+ ## Usage
29
+
30
+ For now, the only module available is `memcached` and you can set it up on your
31
+ `Vagrantfile` with:
32
+
33
+ ```ruby
34
+ Vagrant::Config.run do |config|
35
+ # ... other settings ...
36
+ config.vm.provision Vagrant::Boxen::Provisioner do |boxen|
37
+ boxen.memcached!
38
+ end
39
+ end
40
+ ```
41
+
42
+ While the modules provided might work on most linux distributions, I'm testing
43
+ it all the time on a Ubuntu 12.10 64bits box based on https://github.com/downloads/roderik/VagrantQuantal64Box/quantal64.box
44
+
45
+ To find out more about the planned functionality, check out the
46
+ [project's issues](https://github.com/fgrehm/vagrant-boxen/issues).
47
+
48
+
49
+ ## How does it work?
50
+
51
+ Under the hood, [`Vagrant::Boxen::Provisioner`](https://github.com/fgrehm/vagrant-boxen/blob/master/lib/vagrant-boxen/provisioner.rb)
52
+ will take care of generating the puppet manifest that will get passed to an instance of
53
+ [`Vagrant::Provisioners::Puppet`](https://github.com/mitchellh/vagrant/blob/1-0-stable/lib/vagrant/provisioners/puppet.rb)
54
+ and will be applied to the guest machine.
55
+
56
+
57
+ ## Contributing
58
+
59
+ 1. Fork it
60
+ 2. Create your feature branch (`git checkout -b my-new-feature`)
61
+ 3. Commit your changes (`git commit -am 'Add some feature'`)
62
+ 4. Push to the branch (`git push origin my-new-feature`)
63
+ 5. Create new Pull Request
data/Rakefile ADDED
@@ -0,0 +1,22 @@
1
+ require "bundler/gem_tasks"
2
+
3
+ task :update do
4
+ require 'fileutils'
5
+ sh 'librarian-puppet install --path="puppet/modules" --strip-dot-git --clean --verbose'
6
+ Dir['./puppet/modules/*/{.git,.gitignore,tests,spec,Rakefile,.travis.yml}'].each do |path|
7
+ FileUtils.rm_rf path
8
+ end
9
+ end
10
+
11
+ begin
12
+ require 'rspec/core/rake_task'
13
+ RSpec::Core::RakeTask.new(:spec)
14
+
15
+ desc 'Run specs with code coverage enabled'
16
+ task :coverage do
17
+ ENV['COVERAGE'] = 'true'
18
+ Rake::Task["spec"].execute
19
+ end
20
+
21
+ task :default => :coverage
22
+ rescue LoadError; end
data/Vagrantfile ADDED
@@ -0,0 +1,13 @@
1
+ # -*- mode: ruby -*-
2
+ # vi: set ft=ruby :
3
+
4
+ require './lib/vagrant-boxen'
5
+
6
+ Vagrant::Config.run do |config|
7
+ config.vm.box = "quantal64"
8
+ config.vm.box_url = "https://github.com/downloads/roderik/VagrantQuantal64Box/quantal64.box"
9
+
10
+ config.vm.provision Vagrant::Boxen::Provisioner do |boxen|
11
+ boxen.memcached!
12
+ end
13
+ end
@@ -0,0 +1,54 @@
1
+ module Vagrant
2
+ module Boxen
3
+ class Provisioner < Vagrant::Provisioners::Base
4
+ class Config < Vagrant::Config::Base
5
+ def memcached!
6
+ @memcached = true
7
+ end
8
+
9
+ def memcached?
10
+ @memcached
11
+ end
12
+ end
13
+
14
+ def self.config_class
15
+ Config
16
+ end
17
+
18
+ def initialize(env, config, provisioner = nil)
19
+ super(env, config)
20
+ @logger = Log4r::Logger.new("vagrant::provisioners::boxen")
21
+ @manifests_dir = "/tmp/vagrant-boxen-#{env['vm'].uuid}"
22
+ @puppet_provisioner = provisioner ? provisioner : setup_puppet_provisioner
23
+ end
24
+
25
+ def prepare
26
+ Dir.mkdir @manifests_dir unless Dir.exists? @manifests_dir
27
+ if config.memcached?
28
+ File.open("#{@manifests_dir}/site.pp", 'w') { |f| f.print "class { 'memcached': }" }
29
+ else
30
+ File.open("#{@manifests_dir}/site.pp", 'w') { |f| f.print "" }
31
+ end
32
+ @puppet_provisioner.prepare
33
+ end
34
+
35
+ def provision!
36
+ @puppet_provisioner.provision!
37
+ end
38
+
39
+ private
40
+
41
+ def setup_puppet_provisioner
42
+ config = Vagrant::Provisioners::Puppet::Config.new
43
+ config.manifests_path = @manifests_dir
44
+ config.manifest_file = "site.pp"
45
+ config.module_path = File.join(File.expand_path('../../../', __FILE__), 'puppet/modules')
46
+ # The root path to be used on the guest machine, changed to avoid
47
+ # collision with the default path for puppet provisioner
48
+ config.pp_path = '/tmp/vagrant-boxen-puppet'
49
+ config.options << [ '--verbose', '--debug '] if ENV['DEBUG'] == '1'
50
+ Vagrant::Provisioners::Puppet.new(env, config)
51
+ end
52
+ end
53
+ end
54
+ end
@@ -0,0 +1,5 @@
1
+ module Vagrant
2
+ module Boxen
3
+ VERSION = "0.0.1"
4
+ end
5
+ end
@@ -0,0 +1,13 @@
1
+ require 'vagrant'
2
+
3
+ if File.exists?(File.join(File.expand_path('../../', __FILE__), '.git'))
4
+ $:.unshift(File.expand_path('../../lib', __FILE__))
5
+ end
6
+
7
+ require "vagrant-boxen/version"
8
+ require "vagrant-boxen/provisioner"
9
+
10
+ module Vagrant
11
+ module Boxen
12
+ end
13
+ end
@@ -0,0 +1 @@
1
+ require 'vagrant-boxen'
@@ -0,0 +1,2 @@
1
+ This folder is used to keep vendored puppet modules code, please do not change
2
+ their files and always update using `rake update` ;)
@@ -0,0 +1,3 @@
1
+ fixtures:
2
+ symlinks:
3
+ "memcached": "#{source_dir}"
@@ -0,0 +1,5 @@
1
+ source :rubygems
2
+
3
+ puppetversion = ENV.key?('PUPPET_VERSION') ? "= #{ENV['PUPPET_VERSION']}" : ['>= 2.7']
4
+ gem 'puppet', puppetversion
5
+ gem 'puppetlabs_spec_helper', '>= 0.1.0'
@@ -0,0 +1,13 @@
1
+ Copyright 2011 Steffen Zieger
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.
@@ -0,0 +1,8 @@
1
+ name 'saz-memcached'
2
+ version '2.1.0'
3
+ source 'git://github.com/saz/puppet-memcached.git'
4
+ author 'saz'
5
+ license 'Apache License, Version 2.0'
6
+ summary 'UNKNOWN'
7
+ description 'Manage memcached via Puppet'
8
+ project_page 'https://github.com/saz/puppet-memcached'
@@ -0,0 +1,9 @@
1
+ In order to run tests:
2
+ - puppet and facter must be installed and available in Ruby's LOADPATH
3
+ - the latest revision of rspec-puppet must be installed
4
+ - rake, and rspec2 must be install
5
+
6
+ - the name of the module directory needs to be memcached
7
+
8
+ to run all tests:
9
+ rake spec
@@ -0,0 +1,40 @@
1
+ # puppet-memcached
2
+
3
+ [![Build Status](https://secure.travis-ci.org/saz/puppet-memcached.png)](http://travis-ci.org/saz/puppet-memcached)
4
+
5
+ Manage memcached via Puppet
6
+
7
+ ## How to use
8
+
9
+ ### Use roughly 90% of memory
10
+
11
+ ```ruby
12
+ class { 'memcached': }
13
+ ```
14
+
15
+ ### Set a fixed memory limit in MB
16
+
17
+ ```ruby
18
+ class { 'memcached':
19
+ max_memory => 2048
20
+ }
21
+ ```
22
+
23
+ ### Use 12% of available memory
24
+
25
+ ```ruby
26
+ class { 'memcached':
27
+ max_memory => '12%'
28
+ }
29
+ ```
30
+
31
+ ### Other class parameters
32
+
33
+ * $logfile = '/var/log/memcached.log'
34
+ * $listen_ip = '0.0.0.0'
35
+ * $tcp_port = 11211
36
+ * $udp_port = 11211
37
+ * $user = '' (OS specific setting, see params.pp)
38
+ * $max_connections = 8192
39
+ * $lock_memory = false (WARNING: good if used intelligently, google for -k key)
40
+ * $install_dev = false (TRUE if 'libmemcached-dev' package should be installed)
@@ -0,0 +1,38 @@
1
+ module Puppet::Parser::Functions
2
+ newfunction(:memcached_max_memory, :type => :rvalue, :doc => <<-EOS
3
+ Calculate max_memory size from fact 'memsize' and passed argument.
4
+ EOS
5
+ ) do |arguments|
6
+
7
+ raise(Puppet::ParseError, "memcached_max_memory(): " +
8
+ "Wrong number of arguments given " +
9
+ "(#{arguments.size} for 1)") if arguments.size != 1
10
+
11
+ arg = arguments[0]
12
+ memsize = lookupvar('memorysize')
13
+
14
+ if arg and !arg.to_s.end_with?('%')
15
+ result_in_mb = arg.to_i
16
+ else
17
+ max_memory_percent = arg ? arg : '95%'
18
+
19
+ # Taken from puppetlabs-stdlib to_bytes() function
20
+ value,prefix = */([0-9.e+-]*)\s*([^bB]?)/.match(memsize)[1,2]
21
+
22
+ value = value.to_f
23
+ case prefix
24
+ when '' then value = value
25
+ when 'k' then value *= (1<<10)
26
+ when 'M' then value *= (1<<20)
27
+ when 'G' then value *= (1<<30)
28
+ when 'T' then value *= (1<<40)
29
+ when 'E' then value *= (1<<50)
30
+ else raise Puppet::ParseError, "memcached_max_memory(): Unknown prefix #{prefix}"
31
+ end
32
+ value = value.to_i
33
+ result_in_mb = ( (value / (1 << 20) ) * (max_memory_percent.to_f / 100.0) ).floor
34
+ end
35
+
36
+ return result_in_mb
37
+ end
38
+ end
@@ -0,0 +1,42 @@
1
+ class memcached(
2
+ $package_ensure = 'present',
3
+ $logfile = '/var/log/memcached.log',
4
+ $max_memory = false,
5
+ $lock_memory = false,
6
+ $listen_ip = '0.0.0.0',
7
+ $tcp_port = 11211,
8
+ $udp_port = 11211,
9
+ $user = $::memcached::params::user,
10
+ $max_connections = '8192',
11
+ $verbosity = undef,
12
+ $unix_socket = undef,
13
+ $install_dev = false
14
+ ) inherits memcached::params {
15
+
16
+ package { $memcached::params::package_name:
17
+ ensure => $package_ensure,
18
+ }
19
+
20
+ if $install_dev {
21
+ package { $memcached::params::dev_package_name:
22
+ ensure => $package_ensure,
23
+ require => Package[$memcached::params::package_name]
24
+ }
25
+ }
26
+
27
+ file { $memcached::params::config_file:
28
+ owner => 'root',
29
+ group => 'root',
30
+ mode => '0644',
31
+ content => template($memcached::params::config_tmpl),
32
+ require => Package[$memcached::params::package_name],
33
+ }
34
+
35
+ service { $memcached::params::service_name:
36
+ ensure => running,
37
+ enable => true,
38
+ hasrestart => true,
39
+ hasstatus => false,
40
+ subscribe => File[$memcached::params::config_file],
41
+ }
42
+ }
@@ -0,0 +1,23 @@
1
+ class memcached::params {
2
+ case $::osfamily {
3
+ 'Debian': {
4
+ $package_name = 'memcached'
5
+ $service_name = 'memcached'
6
+ $dev_package_name = 'libmemcached-dev'
7
+ $config_file = '/etc/memcached.conf'
8
+ $config_tmpl = "$module_name/memcached.conf.erb"
9
+ $user = 'nobody'
10
+ }
11
+ 'RedHat': {
12
+ $package_name = 'memcached'
13
+ $service_name = 'memcached'
14
+ $dev_package_name = 'libmemcached-devel'
15
+ $config_file = '/etc/sysconfig/memcached'
16
+ $config_tmpl = "$module_name/memcached_sysconfig.erb"
17
+ $user = 'memcached'
18
+ }
19
+ default: {
20
+ fail("Unsupported platform: ${::osfamily}")
21
+ }
22
+ }
23
+ }
@@ -0,0 +1,47 @@
1
+ # File managed by puppet
2
+
3
+ # Run memcached as a daemon.
4
+ -d
5
+
6
+ # pidfile
7
+ -P /var/run/memcached.pid
8
+
9
+ # Log memcached's output
10
+ logfile <%= logfile -%>
11
+
12
+ <% if @verbosity -%>
13
+ # Verbosity
14
+ -<%= verbosity %>
15
+ <% end -%>
16
+
17
+ # Use <num> MB memory max to use for object storage.
18
+ <% Puppet::Parser::Functions.function('memcached_max_memory') -%>
19
+ -m <%= scope.function_memcached_max_memory([max_memory]) %>
20
+
21
+ <% if @lock_memory -%>
22
+ # Lock down all paged memory. There is a limit on how much memory you may lock.
23
+ -k
24
+ <% end -%>
25
+
26
+ <% if @unix_socket -%>
27
+ # UNIX socket path to listen on
28
+ -s <%= unix_socket %>
29
+ <% else -%>
30
+ # IP to listen on
31
+ -l <%= listen_ip %>
32
+
33
+ # TCP port to listen on
34
+ -p <%= tcp_port %>
35
+
36
+ # UDP port to listen on
37
+ -U <%= udp_port %>
38
+ <% end -%>
39
+
40
+ # Run daemon as user
41
+ -u <%= user %>
42
+
43
+ # Limit the number of simultaneous incoming connections.
44
+ -c <%= max_connections %>
45
+
46
+ # Number of threads to use to process incoming requests.
47
+ -t <%= processorcount %>
@@ -0,0 +1,21 @@
1
+ PORT="<%= tcp_port %>"
2
+ USER="<%= user %>"
3
+ MAXCONN="<%= max_connections %>"
4
+ <% Puppet::Parser::Functions.function('memcached_max_memory') -%>
5
+ CACHESIZE="<%= scope.function_memcached_max_memory([max_memory]) %>"
6
+ OPTIONS="<%
7
+ result = []
8
+ if @verbosity
9
+ result << '-' + verbosity
10
+ end
11
+ if @lock_memory
12
+ result << '-k'
13
+ end
14
+ if @listen_ip
15
+ result << '-l ' + listen_ip
16
+ end
17
+ if @udp_port
18
+ result << '-U ' + udp_port
19
+ end
20
+ result << '-t ' + processorcount
21
+ -%><%= result.join(' ') -%>"
@@ -0,0 +1,32 @@
1
+ require 'rubygems'
2
+
3
+ if ENV['COVERAGE']
4
+ require 'simplecov'
5
+ SimpleCov.start
6
+ end
7
+
8
+ require 'bundler/setup'
9
+
10
+ Bundler.require
11
+
12
+ require 'rspec-spies'
13
+
14
+ require 'rspec/fire'
15
+ RSpec::Fire.configure do |config|
16
+ config.verify_constant_names = true
17
+ end
18
+
19
+ RSpec.configure do |config|
20
+ config.treat_symbols_as_metadata_keys_with_true_values = true
21
+ config.run_all_when_everything_filtered = true
22
+ config.filter_run :focus
23
+
24
+ # Run specs in random order to surface order dependencies. If you find an
25
+ # order dependency and want to debug it, you can fix the order by providing
26
+ # the seed, which is printed after each run.
27
+ # --seed 1234
28
+ config.order = 'random'
29
+
30
+ config.include Vagrant::TestHelpers
31
+ config.include RSpec::Fire
32
+ end
@@ -0,0 +1,56 @@
1
+ require 'spec_helper'
2
+
3
+ describe Vagrant::Boxen::Provisioner do
4
+ let(:uuid) { 'box-uuid' }
5
+ let(:config) { described_class::Config.new }
6
+ let(:puppet_manifests_path) { "/tmp/vagrant-boxen-#{uuid}" }
7
+ let(:puppet_module_path) { File.join(File.expand_path('../../../', __FILE__), 'puppet/modules') }
8
+
9
+ before do
10
+ @app, @env = action_env(vagrant_env.vms.values.first.env)
11
+ @env['vm'].stub(:uuid => uuid)
12
+ end
13
+
14
+ subject { described_class.new(@env, config) }
15
+
16
+ describe 'inner puppet provisioner configuration' do
17
+ # REFACTOR: This is way too much coupling
18
+ let(:puppet_config) { subject.instance_variable_get(:@puppet_provisioner).config }
19
+
20
+ it 'sets module path to vendored puppet modules' do
21
+ puppet_config.module_path.should == puppet_module_path
22
+ end
23
+
24
+ it 'sets the manifest path to the tmp folder' do
25
+ puppet_config.manifests_path.should == puppet_manifests_path
26
+ end
27
+ end
28
+
29
+ describe 'provisioner flow' do
30
+ let(:puppet) { fire_double('Vagrant::Provisioners::Puppet', :prepare => true, :provision! => true) }
31
+ subject { described_class.new(@env, config, puppet) }
32
+
33
+ context 'preparation' do
34
+ before { subject.prepare }
35
+
36
+ it 'generates box manifest on tmp folder based on enabled modules' do
37
+ File.read("#{puppet_manifests_path}/site.pp").should_not =~ /memcached/
38
+ config.memcached!
39
+ subject.prepare
40
+ File.read("#{puppet_manifests_path}/site.pp").should =~ /memcached/
41
+ end
42
+
43
+ it 'delegates to puppet provisioner' do
44
+ puppet.should have_received(:prepare)
45
+ end
46
+ end
47
+
48
+ context 'provisioning' do
49
+ before { subject.provision! }
50
+
51
+ it 'delegates to puppet provisioner' do
52
+ puppet.should have_received(:provision!)
53
+ end
54
+ end
55
+ end
56
+ end
@@ -0,0 +1,27 @@
1
+ # -*- encoding: utf-8 -*-
2
+ lib = File.expand_path('../lib', __FILE__)
3
+ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
+ require 'vagrant-boxen/version'
5
+
6
+ Gem::Specification.new do |gem|
7
+ gem.name = "vagrant-boxen"
8
+ gem.version = Vagrant::Boxen::VERSION
9
+ gem.authors = ["Fabio Rehm"]
10
+ gem.email = ["fgrehm@gmail.com"]
11
+ gem.description = %q{Easier vagrant development boxes creation}
12
+ gem.summary = gem.description
13
+ gem.homepage = "https://github.com/fgrehm/vagrant-boxen"
14
+
15
+ gem.files = `git ls-files`.split($/)
16
+ gem.executables = gem.files.grep(%r{^bin/}).map{ |f| File.basename(f) }
17
+ gem.test_files = gem.files.grep(%r{^(test|spec|features)/})
18
+ gem.require_paths = ["lib"]
19
+
20
+ gem.add_dependency 'vagrant'
21
+
22
+ gem.add_development_dependency 'rspec'
23
+ gem.add_development_dependency 'rspec-spies'
24
+ gem.add_development_dependency 'rspec-fire'
25
+ gem.add_development_dependency 'simplecov'
26
+ gem.add_development_dependency 'librarian-puppet'
27
+ end
metadata ADDED
@@ -0,0 +1,174 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: vagrant-boxen
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1
5
+ prerelease:
6
+ platform: ruby
7
+ authors:
8
+ - Fabio Rehm
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+ date: 2013-02-18 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ type: :runtime
16
+ name: vagrant
17
+ prerelease: false
18
+ requirement: !ruby/object:Gem::Requirement
19
+ requirements:
20
+ - - ! '>='
21
+ - !ruby/object:Gem::Version
22
+ version: '0'
23
+ none: false
24
+ version_requirements: !ruby/object:Gem::Requirement
25
+ requirements:
26
+ - - ! '>='
27
+ - !ruby/object:Gem::Version
28
+ version: '0'
29
+ none: false
30
+ - !ruby/object:Gem::Dependency
31
+ type: :development
32
+ name: rspec
33
+ prerelease: false
34
+ requirement: !ruby/object:Gem::Requirement
35
+ requirements:
36
+ - - ! '>='
37
+ - !ruby/object:Gem::Version
38
+ version: '0'
39
+ none: false
40
+ version_requirements: !ruby/object:Gem::Requirement
41
+ requirements:
42
+ - - ! '>='
43
+ - !ruby/object:Gem::Version
44
+ version: '0'
45
+ none: false
46
+ - !ruby/object:Gem::Dependency
47
+ type: :development
48
+ name: rspec-spies
49
+ prerelease: false
50
+ requirement: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - ! '>='
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
55
+ none: false
56
+ version_requirements: !ruby/object:Gem::Requirement
57
+ requirements:
58
+ - - ! '>='
59
+ - !ruby/object:Gem::Version
60
+ version: '0'
61
+ none: false
62
+ - !ruby/object:Gem::Dependency
63
+ type: :development
64
+ name: rspec-fire
65
+ prerelease: false
66
+ requirement: !ruby/object:Gem::Requirement
67
+ requirements:
68
+ - - ! '>='
69
+ - !ruby/object:Gem::Version
70
+ version: '0'
71
+ none: false
72
+ version_requirements: !ruby/object:Gem::Requirement
73
+ requirements:
74
+ - - ! '>='
75
+ - !ruby/object:Gem::Version
76
+ version: '0'
77
+ none: false
78
+ - !ruby/object:Gem::Dependency
79
+ type: :development
80
+ name: simplecov
81
+ prerelease: false
82
+ requirement: !ruby/object:Gem::Requirement
83
+ requirements:
84
+ - - ! '>='
85
+ - !ruby/object:Gem::Version
86
+ version: '0'
87
+ none: false
88
+ version_requirements: !ruby/object:Gem::Requirement
89
+ requirements:
90
+ - - ! '>='
91
+ - !ruby/object:Gem::Version
92
+ version: '0'
93
+ none: false
94
+ - !ruby/object:Gem::Dependency
95
+ type: :development
96
+ name: librarian-puppet
97
+ prerelease: false
98
+ requirement: !ruby/object:Gem::Requirement
99
+ requirements:
100
+ - - ! '>='
101
+ - !ruby/object:Gem::Version
102
+ version: '0'
103
+ none: false
104
+ version_requirements: !ruby/object:Gem::Requirement
105
+ requirements:
106
+ - - ! '>='
107
+ - !ruby/object:Gem::Version
108
+ version: '0'
109
+ none: false
110
+ description: Easier vagrant development boxes creation
111
+ email:
112
+ - fgrehm@gmail.com
113
+ executables: []
114
+ extensions: []
115
+ extra_rdoc_files: []
116
+ files:
117
+ - .gitignore
118
+ - .rspec
119
+ - .travis.yml
120
+ - Gemfile
121
+ - Guardfile
122
+ - LICENSE.txt
123
+ - Puppetfile
124
+ - Puppetfile.lock
125
+ - README.md
126
+ - Rakefile
127
+ - Vagrantfile
128
+ - lib/vagrant-boxen.rb
129
+ - lib/vagrant-boxen/provisioner.rb
130
+ - lib/vagrant-boxen/version.rb
131
+ - lib/vagrant_init.rb
132
+ - puppet/modules/README.md
133
+ - puppet/modules/memcached/.fixtures.yml
134
+ - puppet/modules/memcached/.gemfile
135
+ - puppet/modules/memcached/LICENSE
136
+ - puppet/modules/memcached/Modulefile
137
+ - puppet/modules/memcached/README-DEVELOPER
138
+ - puppet/modules/memcached/README.md
139
+ - puppet/modules/memcached/lib/puppet/parser/functions/memcached_max_memory.rb
140
+ - puppet/modules/memcached/manifests/init.pp
141
+ - puppet/modules/memcached/manifests/params.pp
142
+ - puppet/modules/memcached/templates/memcached.conf.erb
143
+ - puppet/modules/memcached/templates/memcached_sysconfig.erb
144
+ - spec/spec_helper.rb
145
+ - spec/unit/provisioner_spec.rb
146
+ - vagrant-boxen.gemspec
147
+ homepage: https://github.com/fgrehm/vagrant-boxen
148
+ licenses: []
149
+ post_install_message:
150
+ rdoc_options: []
151
+ require_paths:
152
+ - lib
153
+ required_ruby_version: !ruby/object:Gem::Requirement
154
+ requirements:
155
+ - - ! '>='
156
+ - !ruby/object:Gem::Version
157
+ version: '0'
158
+ none: false
159
+ required_rubygems_version: !ruby/object:Gem::Requirement
160
+ requirements:
161
+ - - ! '>='
162
+ - !ruby/object:Gem::Version
163
+ version: '0'
164
+ none: false
165
+ requirements: []
166
+ rubyforge_project:
167
+ rubygems_version: 1.8.23
168
+ signing_key:
169
+ specification_version: 3
170
+ summary: Easier vagrant development boxes creation
171
+ test_files:
172
+ - spec/spec_helper.rb
173
+ - spec/unit/provisioner_spec.rb
174
+ has_rdoc: