cupper 0.1.3 → 0.2.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +75 -2
- data/cupper.gemspec +2 -0
- data/lib/cupper.rb +9 -3
- data/lib/cupper/cli.rb +7 -1
- data/lib/cupper/config/config.rb +60 -0
- data/lib/cupper/cookbook.rb +1 -1
- data/lib/cupper/cupperfile.rb +33 -11
- data/lib/cupper/entity.rb +1 -1
- data/lib/cupper/environment.rb +5 -17
- data/lib/cupper/errors.rb +8 -0
- data/lib/cupper/project.rb +10 -1
- data/lib/cupper/recipe.rb +12 -5
- data/lib/cupper/templates/Cupperfile.erb +43 -0
- data/lib/cupper/templates/_package.erb +3 -0
- data/lib/cupper/templates/sensibles.erb +5 -0
- data/lib/cupper/version.rb +1 -1
- data/templates/locales/en.yml +7 -0
- metadata +33 -3
- data/lib/cupper/templates/CupperFile.erb +0 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: db74b52ddda16fe1e73d2e89e891452ef7bada67
|
4
|
+
data.tar.gz: 725d29c9e8aa93842a26d0e0ee0b67f325e9fa7b
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 919f337af1d06ab30b6ddcecb6bcd75dccf96e2863d12766795e79a0139bf5659773b18e1f4b2a36fe256f398770ad2fcbfbd37db4840d6e5e44789501a6dbc0
|
7
|
+
data.tar.gz: 29a8b4dc77e18b0bb74afd76c3751de73f377b67040c6dc534e3495087344ddd3074cde6b9ba570bc5f1bf8a186c2d36ef465d999e569a74e46390aed67329af
|
data/README.md
CHANGED
@@ -1,8 +1,27 @@
|
|
1
1
|
# Cupper
|
2
2
|
|
3
|
-
[![Join the chat at https://gitter.im/cupper-reverse-recipe/cupper](https://badges.gitter.im/cupper-reverse-recipe/cupper.svg)](https://gitter.im/cupper-reverse-recipe/cupper?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)
|
3
|
+
[![Join the chat at https://gitter.im/cupper-reverse-recipe/cupper](https://badges.gitter.im/cupper-reverse-recipe/cupper.svg)](https://gitter.im/cupper-reverse-recipe/cupper?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)
|
4
4
|
[![Coverage Status](https://coveralls.io/repos/github/cupper-reverse-recipe/cupper/badge.svg?branch=master)](https://coveralls.io/github/cupper-reverse-recipe/cupper?branch=master)
|
5
5
|
|
6
|
+
Taste your environment and creates a cookbook for it!
|
7
|
+
Cupper is a command line tool that runs in some environment (see supoorted
|
8
|
+
platforms below) and creates a cookbook based on it. It will collect
|
9
|
+
information about the package installed, file configuration, groups, users,
|
10
|
+
links, links and services. Once you have this cookbook, you can change
|
11
|
+
according to your needs, or just runs it in another environment.
|
12
|
+
|
13
|
+
## Support Platform
|
14
|
+
|
15
|
+
Currently, Cupper support the platforms listed below. It means that we
|
16
|
+
tested on this specific platforms and versions, but may work on others
|
17
|
+
version. Let us know :)
|
18
|
+
|
19
|
+
| Debian | Arch |
|
20
|
+
| :----------: | :-------------: |
|
21
|
+
| Jessie 8.6 | (Coming soon) |
|
22
|
+
| Jessie 8.2 | . |
|
23
|
+
|
24
|
+
|
6
25
|
## Installation
|
7
26
|
|
8
27
|
Add this line to your application's Gemfile:
|
@@ -15,16 +34,70 @@ And then execute:
|
|
15
34
|
|
16
35
|
$ bundle
|
17
36
|
|
18
|
-
Or install it yourself
|
37
|
+
Or install it yourself with:
|
19
38
|
|
20
39
|
$ gem install cupper
|
21
40
|
|
22
41
|
## Usage
|
23
42
|
|
43
|
+
Cupper is a command line tool. All commands are available through bash/shell
|
44
|
+
terminal.
|
45
|
+
First create a Cupper project with the following command:
|
46
|
+
|
47
|
+
```
|
48
|
+
$ cupper create <project_name>
|
49
|
+
```
|
50
|
+
|
51
|
+
This will create a directory within a given name. The structure of the
|
52
|
+
Cupper project contains:
|
53
|
+
|
54
|
+
```
|
55
|
+
.project
|
56
|
+
|
|
57
|
+
|- cookbooks/
|
58
|
+
|- Cupperfile
|
59
|
+
|- .sensibles
|
60
|
+
```
|
61
|
+
- **cookbook**: the recipe that are generated is stored in this directory
|
62
|
+
- **Cupperfile**: configuration file that allows you to customize some items
|
63
|
+
inside the cookbook
|
64
|
+
- **.sensibles**: specifies all files that are not suppose to be collected
|
65
|
+
(patten witha a regex is given)
|
66
|
+
|
67
|
+
Inside the project directory you can run the command:
|
68
|
+
```
|
69
|
+
$ cupper generate
|
70
|
+
```
|
71
|
+
This will generate a cookbook based on the configurations on the machine
|
72
|
+
and store in `cookbooks/` directory.
|
73
|
+
|
24
74
|
|
25
75
|
## Development
|
26
76
|
|
77
|
+
This is a common gem, so doesn't needs a bunch of configuration on your
|
78
|
+
environment to develop something. Just use a ruby environment with rbenv
|
79
|
+
or RVM (ruby 2.2.0 or higher).
|
80
|
+
|
81
|
+
### Ohai
|
82
|
+
|
83
|
+
We use [Ohai](https://github.com/chef/ohai) gem to extract the information
|
84
|
+
about the environment. We created our Ohai plugins, it's code made in ruby,
|
85
|
+
so nothing unusual. Check the official
|
86
|
+
[doc](https://docs.chef.io/ohai.html) of Ohai for more knowledge about it.
|
27
87
|
|
28
88
|
## Contributing
|
29
89
|
|
90
|
+
Any contribution are welcome :)
|
91
|
+
Steps:
|
92
|
+
- Make a fork
|
93
|
+
- Clone the repository
|
94
|
+
- Bundle!
|
95
|
+
- Make a change
|
96
|
+
- Send a Pull Request
|
97
|
+
|
98
|
+
## Found any bug? Open a issue
|
30
99
|
|
100
|
+
Just go to the
|
101
|
+
[issue](https://github.com/cupper-reverse-recipe/cupper/issues) page and
|
102
|
+
report the problem. Use a lablel to make it easier to identify if it's
|
103
|
+
a bug or a suggestion.
|
data/cupper.gemspec
CHANGED
data/lib/cupper.rb
CHANGED
@@ -5,13 +5,19 @@ require 'cupper/ohai_plugins'
|
|
5
5
|
require 'cupper/collect'
|
6
6
|
require 'cupper/cookbook'
|
7
7
|
require 'cupper/entity'
|
8
|
+
require 'cupper/config/config'
|
9
|
+
require 'cupper/cupperfile'
|
10
|
+
require 'cupper/environment'
|
11
|
+
require 'cupper/errors'
|
12
|
+
|
8
13
|
|
9
14
|
|
10
15
|
module Cupper
|
11
|
-
CUPPER_ROOT
|
12
|
-
OHAI_PLUGINS_PATH
|
16
|
+
CUPPER_ROOT = File.expand_path(File.dirname(__FILE__))
|
17
|
+
OHAI_PLUGINS_PATH = CUPPER_ROOT + '/cupper/plugins/ohai'
|
13
18
|
CUPPER_PLUGINS_PATH = CUPPER_ROOT + '/cupper/plugins/cupper'
|
14
|
-
TEMPLATE_PATH
|
19
|
+
TEMPLATE_PATH = CUPPER_ROOT + '/cupper/templates'
|
20
|
+
ENVIRONMENT = Environment.new
|
15
21
|
|
16
22
|
# REVIEW: maybe there is a better way and place to load all plugins
|
17
23
|
# Loading all cupper plugins
|
data/lib/cupper/cli.rb
CHANGED
@@ -7,6 +7,7 @@ require 'thor'
|
|
7
7
|
require 'cupper/project'
|
8
8
|
require 'cupper/cookbook'
|
9
9
|
require 'cupper/ohai_plugins'
|
10
|
+
require 'cupper/environment'
|
10
11
|
|
11
12
|
module Cupper
|
12
13
|
class Cli < Thor
|
@@ -30,7 +31,12 @@ module Cupper
|
|
30
31
|
desc 'generate', 'Extract configuration and create a cookbook'
|
31
32
|
method_option :verbose, :aliases => '-v', :desc => 'Enable output log'
|
32
33
|
def generate
|
33
|
-
puts "Generating the Cookbook"
|
34
|
+
puts "Generating the Cookbook..."
|
35
|
+
|
36
|
+
puts "Setting up the environment"
|
37
|
+
Cupper::ENVIRONMENT.check_env(Errors::NoEnvironmentError, Cupper::ENVIRONMENT.root_path)
|
38
|
+
Cupper::ENVIRONMENT.cupperfile
|
39
|
+
|
34
40
|
cookbook = Cookbook.new
|
35
41
|
if options.verbose?
|
36
42
|
puts "Verbose mode enabled"
|
@@ -0,0 +1,60 @@
|
|
1
|
+
require "pathname"
|
2
|
+
require "cupper/errors"
|
3
|
+
require 'colorize'
|
4
|
+
|
5
|
+
|
6
|
+
module Cupper
|
7
|
+
module Config
|
8
|
+
extend self
|
9
|
+
|
10
|
+
def parameter(*names)
|
11
|
+
names.each do |name|
|
12
|
+
attr_accessor name
|
13
|
+
|
14
|
+
# For each given symbol we generate accessor method that sets option's
|
15
|
+
# value being called with an argument, or returns option's current value
|
16
|
+
# when called without arguments
|
17
|
+
define_method name do |*values|
|
18
|
+
value = values.first
|
19
|
+
value ? self.send("#{name}=", value) : instance_variable_get("@#{name}")
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
23
|
+
|
24
|
+
def self.configure
|
25
|
+
self.config do
|
26
|
+
parameter :native_configured
|
27
|
+
parameter :sensible_files
|
28
|
+
parameter :allow_downgrade
|
29
|
+
parameter :sourceless_packages
|
30
|
+
parameter :package_version
|
31
|
+
|
32
|
+
native_configured true
|
33
|
+
end
|
34
|
+
# TODO: raise stuff if mandatory stuff is not defined in cupperfile
|
35
|
+
end
|
36
|
+
|
37
|
+
def config(&block)
|
38
|
+
instance_eval &block
|
39
|
+
end
|
40
|
+
|
41
|
+
def load(cupperfile)
|
42
|
+
Kernel.load cupperfile
|
43
|
+
result = Cupper::Config
|
44
|
+
|
45
|
+
puts "Configuration loaded successfully, finalizing and returning"
|
46
|
+
return result
|
47
|
+
end
|
48
|
+
|
49
|
+
def self.all_sensibles
|
50
|
+
sensibles = Array.new
|
51
|
+
unless sensible_files
|
52
|
+
env = Cupper::ENVIRONMENT
|
53
|
+
File.open("#{env.root_path}/.sensibles").each do |line|
|
54
|
+
sensibles.push line.chomp unless line.strip.chomp.match /^#.*/ or line.chomp.empty?
|
55
|
+
end
|
56
|
+
end
|
57
|
+
sensibles
|
58
|
+
end
|
59
|
+
end
|
60
|
+
end
|
data/lib/cupper/cookbook.rb
CHANGED
@@ -6,7 +6,7 @@ module Cupper
|
|
6
6
|
class Cookbook
|
7
7
|
# TODO: Read config file to tell the project path and configs
|
8
8
|
def initialize(cookbookname='default')
|
9
|
-
@cookbook_path = "#{Dir.getwd}/#{cookbookname}"
|
9
|
+
@cookbook_path = "#{Dir.getwd}/cookbooks/#{cookbookname}"
|
10
10
|
@cookbook_files_path = "#{@cookbook_path}/files"
|
11
11
|
@cookbook_recipes_path = "#{@cookbook_path}/recipes"
|
12
12
|
@recipe_deps = [ # TODO this is hard code to reflect all_recipes. Refactor this later
|
data/lib/cupper/cupperfile.rb
CHANGED
@@ -1,22 +1,44 @@
|
|
1
1
|
module Cupper
|
2
2
|
class Cupperfile
|
3
3
|
|
4
|
-
def initialize(
|
5
|
-
@
|
6
|
-
@
|
7
|
-
@config, _ = loader.load(keys)
|
4
|
+
def initialize(key)
|
5
|
+
@key = key
|
6
|
+
@config, _ = Cupper::Config.load(key)
|
8
7
|
end
|
9
8
|
|
10
|
-
|
9
|
+
def machine_being_read(name, env)
|
10
|
+
# Load the configuration for the machine
|
11
|
+
results = cupper_config(name, env)
|
12
|
+
config = results[:config]
|
11
13
|
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
end
|
14
|
+
# Create the machine and cache it for future calls. This will also
|
15
|
+
# return the machine from this method.
|
16
|
+
return new_machine(name, config, env)
|
17
|
+
end
|
17
18
|
|
18
|
-
|
19
|
+
def new_machine(name, config, env)
|
20
|
+
machine = Attribute.new
|
21
|
+
class << machine
|
22
|
+
attr_accessor :name
|
23
|
+
attr_accessor :config
|
24
|
+
attr_accessor :env
|
25
|
+
end
|
26
|
+
machine.name = name
|
27
|
+
machine.config = config
|
28
|
+
machine.env = env
|
29
|
+
machine
|
19
30
|
end
|
20
31
|
|
32
|
+
def cupper_config(name, env)
|
33
|
+
cupperfile = env.find_cupperfile(env.root_path)
|
34
|
+
if cupperfile
|
35
|
+
config = Cupper::Config.load(cupperfile)
|
36
|
+
end
|
37
|
+
|
38
|
+
return {
|
39
|
+
config: config,
|
40
|
+
# TODO: add other meaningfull returns
|
41
|
+
}
|
42
|
+
end
|
21
43
|
end
|
22
44
|
end
|
data/lib/cupper/entity.rb
CHANGED
data/lib/cupper/environment.rb
CHANGED
@@ -1,7 +1,8 @@
|
|
1
|
+
require 'colorize'
|
1
2
|
require "pathname"
|
2
3
|
require "cupper/cupperfile"
|
3
4
|
require "cupper/version"
|
4
|
-
require
|
5
|
+
require "cupper/errors"
|
5
6
|
|
6
7
|
module Cupper
|
7
8
|
class Environment
|
@@ -33,6 +34,7 @@ module Cupper
|
|
33
34
|
raise ex if !root_path
|
34
35
|
rescue ex => ex
|
35
36
|
puts "#{ex.message}".red
|
37
|
+
exit
|
36
38
|
end
|
37
39
|
end
|
38
40
|
|
@@ -101,20 +103,6 @@ module Cupper
|
|
101
103
|
"#<#{self.class}: #{@cwd}>".encode('external')
|
102
104
|
end
|
103
105
|
|
104
|
-
def config_loader
|
105
|
-
return @config_loader if @config_loader
|
106
|
-
|
107
|
-
root_cupperfile = nil
|
108
|
-
if root_path
|
109
|
-
root_cupperfile = find_cupperfile(root_path, @cupperfile_name)
|
110
|
-
end
|
111
|
-
|
112
|
-
@config_loader = Config::Loader.new(
|
113
|
-
Config::VERSIONS, Config::VERSIONS_ORDER)
|
114
|
-
@config_loader.set(:root, root_cupperfile) if root_cupperfile
|
115
|
-
@config_loader
|
116
|
-
end
|
117
|
-
|
118
106
|
def environment(cupperfile, **opts)
|
119
107
|
path = File.expand_path(cupperfile, root_path)
|
120
108
|
file = File.basename(path)
|
@@ -160,11 +148,11 @@ module Cupper
|
|
160
148
|
end
|
161
149
|
|
162
150
|
def cupperfile
|
163
|
-
@cupperfile ||=
|
151
|
+
@cupperfile ||= Cupper::Cupperfile.new(find_cupperfile(@root_path))
|
164
152
|
end
|
165
153
|
|
166
154
|
def find_cupperfile(search_path, filenames=nil)
|
167
|
-
filenames ||= ["
|
155
|
+
filenames ||= ["Cupperfile", "cupperfile"]
|
168
156
|
filenames.each do |cupperfile|
|
169
157
|
current_path = search_path.join(cupperfile)
|
170
158
|
return current_path if current_path.file?
|
data/lib/cupper/errors.rb
CHANGED
@@ -75,10 +75,18 @@ module Cupper
|
|
75
75
|
error_key(:no_env)
|
76
76
|
end
|
77
77
|
|
78
|
+
class CupperfileSyntaxError < CupperError
|
79
|
+
error_key(:cupperfile_syntax_error)
|
80
|
+
end
|
81
|
+
|
78
82
|
class LocalDataDirectoryNotAccessible < CupperError
|
79
83
|
error_key(:local_data_dir_not_accessible)
|
80
84
|
end
|
81
85
|
|
86
|
+
class CupperfileLoadError < CupperError
|
87
|
+
error_key(:cupperfile_load_error)
|
88
|
+
end
|
89
|
+
|
82
90
|
end
|
83
91
|
|
84
92
|
end
|
data/lib/cupper/project.rb
CHANGED
@@ -22,7 +22,12 @@ module Cupper
|
|
22
22
|
'cookbooks'
|
23
23
|
]
|
24
24
|
@files = [
|
25
|
-
'
|
25
|
+
'Cupperfile',
|
26
|
+
]
|
27
|
+
# TODO: this should not be separated from the others
|
28
|
+
# files. Try to get them together.
|
29
|
+
@hidden = [
|
30
|
+
'sensibles'
|
26
31
|
]
|
27
32
|
end
|
28
33
|
|
@@ -35,6 +40,10 @@ module Cupper
|
|
35
40
|
Structure.new(dir, "#{@dir}/#{@name}", nil, Entity::DIR).create
|
36
41
|
Structure.new(file, "#{@dir}/#{@name}", file).create
|
37
42
|
end
|
43
|
+
|
44
|
+
@hidden.each do |file|
|
45
|
+
Structure.new(".#{file}", "#{@dir}/#{@name}", file).create
|
46
|
+
end
|
38
47
|
end
|
39
48
|
end
|
40
49
|
end
|
data/lib/cupper/recipe.rb
CHANGED
@@ -34,10 +34,6 @@ module Cupper
|
|
34
34
|
(file[1]['type'].split.first(2).join(' ').match('symbolic link'))
|
35
35
|
end
|
36
36
|
|
37
|
-
def dir_type?(file)
|
38
|
-
file[1]['type'].match('directory')
|
39
|
-
end
|
40
|
-
|
41
37
|
def text_type?(file)
|
42
38
|
file[1]['type'].match('text') or file[1]['type'].match('ASCII')
|
43
39
|
end
|
@@ -144,7 +140,7 @@ module Cupper
|
|
144
140
|
def expand_files(files)
|
145
141
|
att = Array.new
|
146
142
|
files.each do |attr|
|
147
|
-
if
|
143
|
+
if valid_cookbook_file?(attr)
|
148
144
|
path = attr[0]
|
149
145
|
source = attr[0]
|
150
146
|
group = attr[1]['group']
|
@@ -162,6 +158,17 @@ module Cupper
|
|
162
158
|
att
|
163
159
|
end
|
164
160
|
|
161
|
+
def valid_cookbook_file?(attr)
|
162
|
+
(text_type?(attr) and
|
163
|
+
!sensible_files?(attr) and
|
164
|
+
(!(attr[1]['related'].nil?) or
|
165
|
+
attr[0].include? "/etc/apt/sources.list"))
|
166
|
+
end
|
167
|
+
|
168
|
+
def sensible_files?(attr)
|
169
|
+
!!(Config.all_sensibles.find { |file| attr[0].match Regexp.new("^#{file}$") })
|
170
|
+
end
|
171
|
+
|
165
172
|
# Every attribute object is created dynamic
|
166
173
|
def new_package(name, version)
|
167
174
|
package = Attribute.new
|
@@ -0,0 +1,43 @@
|
|
1
|
+
# # -*- mode: ruby -*-
|
2
|
+
# # # vi: set ft=ruby :
|
3
|
+
#
|
4
|
+
# The Cupperfile defines rules to be follow when the
|
5
|
+
# recipe is being generated.
|
6
|
+
#
|
7
|
+
|
8
|
+
Cupper::Config.config do
|
9
|
+
Cupper::Config.configure
|
10
|
+
|
11
|
+
# The files considered sensible are the ones with
|
12
|
+
# critical information on it. For example, a file
|
13
|
+
# that has a pem key or a certificate, can`t be
|
14
|
+
# treaded as a normal file.
|
15
|
+
# Specify the files, or extensions in the '.sensibles'
|
16
|
+
# on the root of the Cupper project.
|
17
|
+
#
|
18
|
+
# Set this variable to true if you want to ignore
|
19
|
+
# the .sensibles and copy all the files to the cookbook
|
20
|
+
sensible_files false
|
21
|
+
|
22
|
+
# The packages extracted from the target environment may
|
23
|
+
# have a older version. If you want to create a recipe
|
24
|
+
# that allows a downgrade flag to the package manager,
|
25
|
+
# set this variable to true
|
26
|
+
allow_downgrade false
|
27
|
+
|
28
|
+
# Some packages on the environment may not have a source
|
29
|
+
# repository related to. This packages will not appear
|
30
|
+
# in the cookbook, because the package was installed
|
31
|
+
# using other methods other than the default.
|
32
|
+
#
|
33
|
+
# Setting this variable to true will extract the packages
|
34
|
+
# without a source repository. Please check the repositories
|
35
|
+
# on the machine that the cookbook will run before running
|
36
|
+
# the cookbook.
|
37
|
+
sourceless_packages false
|
38
|
+
|
39
|
+
# The packages are extracted with the version instaled in the
|
40
|
+
# machine. You may want to not specify the version on the
|
41
|
+
# recipe. If so, set the variable to false.
|
42
|
+
package_version true
|
43
|
+
end
|
@@ -5,6 +5,7 @@
|
|
5
5
|
#
|
6
6
|
<% for @cb in @sources_list %>
|
7
7
|
cookbook_file '<%= @cb.path %>' do
|
8
|
+
source '<%= @cb.source %>'
|
8
9
|
owner '<%= @cb.owner %>'
|
9
10
|
group '<%= @cb.group %>'
|
10
11
|
mode '<%= @cb.mode %>'
|
@@ -13,7 +14,9 @@ end
|
|
13
14
|
|
14
15
|
<% for @package in @packages %>
|
15
16
|
package '<%= @package.name %>' do
|
17
|
+
<% if Cupper::Config.package_version -%>
|
16
18
|
version '<%= @package.version %>'
|
19
|
+
<% end -%>
|
17
20
|
action :install
|
18
21
|
end
|
19
22
|
<% end %>
|
data/lib/cupper/version.rb
CHANGED
data/templates/locales/en.yml
CHANGED
@@ -15,3 +15,10 @@ en:
|
|
15
15
|
state is not accessible. The directory specified as the local data
|
16
16
|
directory must be both readable and writable for the user that is
|
17
17
|
running cupper.
|
18
|
+
cupperfile_syntax_error: |-
|
19
|
+
There is a syntax error in the following cupperfile. The syntax error
|
20
|
+
message is reproduced below for convenience.
|
21
|
+
cupperfile_load_error: |-
|
22
|
+
There was an error loading a Cupperfile. The file being loaded
|
23
|
+
and the error message are shown below. This is usually caused by
|
24
|
+
a syntax error.
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: cupper
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Paulo Tada
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date:
|
12
|
+
date: 2017-01-02 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: bundler
|
@@ -87,6 +87,34 @@ dependencies:
|
|
87
87
|
- - ">="
|
88
88
|
- !ruby/object:Gem::Version
|
89
89
|
version: 8.15.1
|
90
|
+
- !ruby/object:Gem::Dependency
|
91
|
+
name: colorize
|
92
|
+
requirement: !ruby/object:Gem::Requirement
|
93
|
+
requirements:
|
94
|
+
- - '='
|
95
|
+
- !ruby/object:Gem::Version
|
96
|
+
version: 0.8.1
|
97
|
+
type: :runtime
|
98
|
+
prerelease: false
|
99
|
+
version_requirements: !ruby/object:Gem::Requirement
|
100
|
+
requirements:
|
101
|
+
- - '='
|
102
|
+
- !ruby/object:Gem::Version
|
103
|
+
version: 0.8.1
|
104
|
+
- !ruby/object:Gem::Dependency
|
105
|
+
name: i18n
|
106
|
+
requirement: !ruby/object:Gem::Requirement
|
107
|
+
requirements:
|
108
|
+
- - '='
|
109
|
+
- !ruby/object:Gem::Version
|
110
|
+
version: 0.7.0
|
111
|
+
type: :runtime
|
112
|
+
prerelease: false
|
113
|
+
version_requirements: !ruby/object:Gem::Requirement
|
114
|
+
requirements:
|
115
|
+
- - '='
|
116
|
+
- !ruby/object:Gem::Version
|
117
|
+
version: 0.7.0
|
90
118
|
description: Taste your system and create a recipe
|
91
119
|
email:
|
92
120
|
- paulohtfs@gmail.com
|
@@ -108,6 +136,7 @@ files:
|
|
108
136
|
- lib/cupper.rb
|
109
137
|
- lib/cupper/cli.rb
|
110
138
|
- lib/cupper/collect.rb
|
139
|
+
- lib/cupper/config/config.rb
|
111
140
|
- lib/cupper/cookbook.rb
|
112
141
|
- lib/cupper/cookbook_file.rb
|
113
142
|
- lib/cupper/cupperfile.rb
|
@@ -127,7 +156,7 @@ files:
|
|
127
156
|
- lib/cupper/plugins/ohai/services.rb
|
128
157
|
- lib/cupper/project.rb
|
129
158
|
- lib/cupper/recipe.rb
|
130
|
-
- lib/cupper/templates/
|
159
|
+
- lib/cupper/templates/Cupperfile.erb
|
131
160
|
- lib/cupper/templates/_cookbook_file.erb
|
132
161
|
- lib/cupper/templates/_groups.erb
|
133
162
|
- lib/cupper/templates/_links.erb
|
@@ -137,6 +166,7 @@ files:
|
|
137
166
|
- lib/cupper/templates/_users.erb
|
138
167
|
- lib/cupper/templates/cookbook_file.erb
|
139
168
|
- lib/cupper/templates/recipe.erb
|
169
|
+
- lib/cupper/templates/sensibles.erb
|
140
170
|
- lib/cupper/version.rb
|
141
171
|
- templates/locales/en.yml
|
142
172
|
homepage: https://github.com/cupper-reverse-recipe/cupper
|
@@ -1 +0,0 @@
|
|
1
|
-
# Cupper config file
|