petra 0.0.1 → 0.0.2
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.
- checksums.yaml +8 -8
- data/CHANGELOG.md +11 -0
- data/Gemfile +2 -1
- data/README.md +19 -9
- data/bin/petra +9 -2
- data/lib/petra.rb +2 -0
- data/lib/petra/cli.rb +19 -0
- data/lib/petra/cli/generate.rb +126 -0
- data/lib/petra/cli/subcommand.rb +53 -0
- data/lib/petra/patches/thor.rb +1 -0
- data/lib/petra/patches/thor/command.rb +40 -0
- data/lib/petra/version.rb +1 -1
- data/lib/sources/machine/new/machines/%machine_name%.vagrant.rb.tt +17 -0
- data/lib/sources/playbook/new/%playbook_name%.yml.tt +5 -0
- data/lib/sources/project/new/.gitignore +9 -0
- data/lib/sources/project/new/README.md.tt +6 -0
- data/lib/sources/project/new/Vagrantfile +21 -0
- data/lib/sources/project/new/hosts/local.hosts +1 -0
- data/lib/sources/project/new/lib/app.rb +63 -0
- data/lib/sources/project/new/roles/common/tasks/main.yml +16 -0
- data/lib/sources/seed/new/seeds/%seed_name%.seed.example.yml +16 -0
- data/lib/sources/seed/new/seeds/%seed_name%.seed.yml +20 -0
- data/petra.gemspec +1 -1
- metadata +19 -4
checksums.yaml
CHANGED
@@ -1,15 +1,15 @@
|
|
1
1
|
---
|
2
2
|
!binary "U0hBMQ==":
|
3
3
|
metadata.gz: !binary |-
|
4
|
-
|
4
|
+
ZDY5NWFlMmY0MDgxODYyMjM2ZTMwNGE3NDQzN2JiNzJiYTM2Mzg3ZQ==
|
5
5
|
data.tar.gz: !binary |-
|
6
|
-
|
6
|
+
ZWMyNzM3YTQ1NDJhMjY5YTRlOGY3ODEyYTE4YzhjNDllMmJlOTVmOA==
|
7
7
|
!binary "U0hBNTEy":
|
8
8
|
metadata.gz: !binary |-
|
9
|
-
|
10
|
-
|
11
|
-
|
9
|
+
YmRhODNlYjM2OWM0MzRkZDBhNmFlYWRlNGM2MWNhYzY4MGQ4ZDdhMGQyZjlj
|
10
|
+
OGJlZjdiODA1YWJiNGYwMzdiZjUyYTVhYWVlMGRlYTg1MGYxODNjZGFlZWVk
|
11
|
+
ZWNiNDNkZjM1OGJhYzc5MzU0MzQzYTkwYTdkNWQ5MjJmYzUxMjA=
|
12
12
|
data.tar.gz: !binary |-
|
13
|
-
|
14
|
-
|
15
|
-
|
13
|
+
MjM0YzAwZjc2NDJiZTMyMzJmMzUzYTJiNTM2OGJmNTdhMjM5ODg5ZDZlYWZh
|
14
|
+
NjAwMzg0ZTc2Yzg4ZGEyYjU0ODNkOGQ2YmE5NGYxNTVkOWViMjE5ZDE0ZGU3
|
15
|
+
NzY2NDU5M2UzNWY3OGQzYjI1ZGU0ZTU5ODgzYjdhNDQ3M2I0MzY=
|
data/CHANGELOG.md
ADDED
data/Gemfile
CHANGED
data/README.md
CHANGED
@@ -1,24 +1,34 @@
|
|
1
1
|
# Petra
|
2
2
|
|
3
|
-
A toolkit for managing Ansible projects.
|
3
|
+
A toolkit for managing Ansible/Vagrant projects.
|
4
4
|
|
5
5
|
## Installation
|
6
6
|
|
7
|
-
|
7
|
+
Run the following command on your shell to install the gem, including
|
8
|
+
the CLI.
|
8
9
|
|
9
|
-
gem
|
10
|
+
gem install petra
|
10
11
|
|
11
|
-
|
12
|
+
## Usage
|
12
13
|
|
13
|
-
|
14
|
+
Start by creating a new project:
|
14
15
|
|
15
|
-
|
16
|
+
petra generate project my-sweet-project
|
16
17
|
|
17
|
-
|
18
|
+
Or, use the shortcut:
|
18
19
|
|
19
|
-
|
20
|
+
petra new my-sweet-project
|
21
|
+
|
22
|
+
This includes a default machine configuration with the name `default`.
|
23
|
+
Machines are Petra's way of describing the different (proto)types of
|
24
|
+
boxes that your project may need. If you want to call it `webserver`
|
25
|
+
instead, use the `-m` option:
|
26
|
+
|
27
|
+
petra new my-sweet-project -m webserver
|
28
|
+
|
29
|
+
When you're ready, `cd` into your project and run `vagrant up`.
|
20
30
|
|
21
|
-
|
31
|
+
That's all for now :)
|
22
32
|
|
23
33
|
## Contributing
|
24
34
|
|
data/bin/petra
CHANGED
@@ -8,8 +8,15 @@ BEGIN {
|
|
8
8
|
require 'petra/cli'
|
9
9
|
rescue LoadError => e
|
10
10
|
raise e if has_retried
|
11
|
-
|
12
|
-
|
11
|
+
|
12
|
+
rootdir = File.expand_path "#{ __FILE__ }/../.."
|
13
|
+
gitdir = "#{ rootdir }/.git"
|
14
|
+
|
15
|
+
if Dir.exists?( gitdir )
|
16
|
+
ENV[ 'BUNDLE_GEMFILE' ] ||= "#{ rootdir }/Gemfile"
|
17
|
+
require 'bundler/setup'
|
18
|
+
end
|
19
|
+
|
13
20
|
has_retried = true
|
14
21
|
retry
|
15
22
|
end
|
data/lib/petra.rb
CHANGED
data/lib/petra/cli.rb
CHANGED
@@ -1,6 +1,25 @@
|
|
1
|
+
require 'petra'
|
1
2
|
require 'thor'
|
2
3
|
|
3
4
|
module Petra
|
4
5
|
class CLI < Thor
|
6
|
+
desc \
|
7
|
+
'new <name>',
|
8
|
+
'Shortcut to create a new Petra project named <name>'
|
9
|
+
|
10
|
+
option \
|
11
|
+
:machine_name,
|
12
|
+
:aliases => '-m',
|
13
|
+
:default => 'default',
|
14
|
+
:desc => 'The name of the first machine in the project.'
|
15
|
+
|
16
|
+
def new( project_name )
|
17
|
+
invoke \
|
18
|
+
Generate,
|
19
|
+
:project
|
20
|
+
end
|
5
21
|
end
|
6
22
|
end
|
23
|
+
|
24
|
+
require 'petra/cli/subcommand'
|
25
|
+
require 'petra/cli/generate'
|
@@ -0,0 +1,126 @@
|
|
1
|
+
module Petra
|
2
|
+
class CLI
|
3
|
+
Subcommand :Generate do
|
4
|
+
attr_reader \
|
5
|
+
:machine_name,
|
6
|
+
:playbook_name,
|
7
|
+
:project_name,
|
8
|
+
:seed_name
|
9
|
+
|
10
|
+
command_description 'Template various parts of, or whole, Petra projects'
|
11
|
+
command_invocation 'generate'
|
12
|
+
command_usage 'generate <subcommand> <...args>'
|
13
|
+
|
14
|
+
desc \
|
15
|
+
'machine <name>',
|
16
|
+
'Create a new machine named <name>'
|
17
|
+
|
18
|
+
def machine( machine_name )
|
19
|
+
@machine_name ||= machine_name
|
20
|
+
|
21
|
+
template_new_machine!
|
22
|
+
|
23
|
+
invoke_new_seed!
|
24
|
+
invoke_new_playbook!
|
25
|
+
end
|
26
|
+
|
27
|
+
desc \
|
28
|
+
'playbook <name>',
|
29
|
+
'Create a new playbook named <name>'
|
30
|
+
|
31
|
+
def playbook( playbook_name )
|
32
|
+
@playbook_name ||= playbook_name
|
33
|
+
template_new_playbook!
|
34
|
+
end
|
35
|
+
|
36
|
+
desc \
|
37
|
+
'project <name>',
|
38
|
+
'Create a new Petra project named <name>'
|
39
|
+
|
40
|
+
option \
|
41
|
+
:machine_name,
|
42
|
+
:aliases => '-m',
|
43
|
+
:default => 'default',
|
44
|
+
:desc => 'The name of the first machine in the project.'
|
45
|
+
|
46
|
+
def project( project_name )
|
47
|
+
@project_name ||= project_name
|
48
|
+
|
49
|
+
template_new_project_directory!
|
50
|
+
|
51
|
+
inside project_name do
|
52
|
+
invoke_new_machine!
|
53
|
+
end
|
54
|
+
end
|
55
|
+
|
56
|
+
desc \
|
57
|
+
'seed <name>',
|
58
|
+
'Create a new seed named <name>'
|
59
|
+
|
60
|
+
def seed( seed_name )
|
61
|
+
@seed_name ||= seed_name
|
62
|
+
template_new_seed!
|
63
|
+
end
|
64
|
+
|
65
|
+
no_commands do
|
66
|
+
def invoke_new_playbook!
|
67
|
+
invoke \
|
68
|
+
Generate,
|
69
|
+
:playbook,
|
70
|
+
[ machine_name ]
|
71
|
+
end
|
72
|
+
|
73
|
+
def invoke_new_seed!
|
74
|
+
invoke \
|
75
|
+
Generate,
|
76
|
+
:seed,
|
77
|
+
[ machine_name ]
|
78
|
+
end
|
79
|
+
|
80
|
+
def invoke_new_machine!
|
81
|
+
invoke \
|
82
|
+
Generate,
|
83
|
+
:machine,
|
84
|
+
[ machine_name ],
|
85
|
+
Hash.new
|
86
|
+
end
|
87
|
+
|
88
|
+
def machine_name
|
89
|
+
@machine_name or options.machine_name
|
90
|
+
end
|
91
|
+
|
92
|
+
def petra_version
|
93
|
+
Petra::VERSION
|
94
|
+
end
|
95
|
+
|
96
|
+
def template_new_machine!
|
97
|
+
empty_directory 'machines'
|
98
|
+
|
99
|
+
directory \
|
100
|
+
'machine/new',
|
101
|
+
'.'
|
102
|
+
end
|
103
|
+
|
104
|
+
def template_new_playbook!
|
105
|
+
directory \
|
106
|
+
'playbook/new',
|
107
|
+
'.'
|
108
|
+
end
|
109
|
+
|
110
|
+
def template_new_project_directory!
|
111
|
+
directory \
|
112
|
+
'project/new',
|
113
|
+
project_name
|
114
|
+
end
|
115
|
+
|
116
|
+
def template_new_seed!
|
117
|
+
empty_directory 'seeds'
|
118
|
+
|
119
|
+
directory \
|
120
|
+
'seed/new',
|
121
|
+
'.'
|
122
|
+
end
|
123
|
+
end
|
124
|
+
end
|
125
|
+
end
|
126
|
+
end
|
@@ -0,0 +1,53 @@
|
|
1
|
+
require 'petra/patches/thor'
|
2
|
+
|
3
|
+
module Petra
|
4
|
+
class CLI
|
5
|
+
class Subcommand < Thor
|
6
|
+
include Thor::Actions
|
7
|
+
|
8
|
+
module ClassMethods
|
9
|
+
%w(
|
10
|
+
description
|
11
|
+
invocation
|
12
|
+
usage
|
13
|
+
).each do | attr |
|
14
|
+
module_eval <<-___ , __FILE__ , __LINE__
|
15
|
+
def command_#{ attr }( val = nil )
|
16
|
+
if val
|
17
|
+
@_command_#{ attr } ||= val
|
18
|
+
end
|
19
|
+
|
20
|
+
@_command_#{ attr }
|
21
|
+
end
|
22
|
+
___
|
23
|
+
end
|
24
|
+
end
|
25
|
+
|
26
|
+
def self.inherited( klass )
|
27
|
+
klass.source_root "#{ LIBPATH }/sources"
|
28
|
+
klass.extend ClassMethods
|
29
|
+
end
|
30
|
+
end
|
31
|
+
|
32
|
+
private
|
33
|
+
|
34
|
+
def self.Subcommand( command_name , &block )
|
35
|
+
subcommand_class =
|
36
|
+
Class.new \
|
37
|
+
Subcommand,
|
38
|
+
&block
|
39
|
+
|
40
|
+
const_set \
|
41
|
+
command_name,
|
42
|
+
subcommand_class
|
43
|
+
|
44
|
+
register \
|
45
|
+
subcommand_class,
|
46
|
+
subcommand_class.command_invocation,
|
47
|
+
subcommand_class.command_usage,
|
48
|
+
subcommand_class.command_description
|
49
|
+
|
50
|
+
subcommand_class
|
51
|
+
end
|
52
|
+
end
|
53
|
+
end
|
@@ -0,0 +1 @@
|
|
1
|
+
require 'petra/patches/thor/command'
|
@@ -0,0 +1,40 @@
|
|
1
|
+
class Thor
|
2
|
+
class Command
|
3
|
+
def formatted_usage(klass, namespace = true, subcommand = false)
|
4
|
+
if namespace
|
5
|
+
namespace = klass.namespace
|
6
|
+
formatted = "#{namespace.gsub(/^(default)/,'')}:"
|
7
|
+
end
|
8
|
+
formatted = "#{klass.namespace.split(':').last} " if subcommand
|
9
|
+
|
10
|
+
formatted ||= ""
|
11
|
+
|
12
|
+
# PATCH :: properly display subcommands
|
13
|
+
#
|
14
|
+
# Tasks/Commands registered in subcommands incorrectly
|
15
|
+
# display at the top level with the default Thor help
|
16
|
+
# task. This attempts to fix the issue.
|
17
|
+
#
|
18
|
+
# WARN :: it probably won't work for subcommands of subcommands
|
19
|
+
#
|
20
|
+
if !subcommand and klass.ancestors.include?( Petra::CLI::Subcommand )
|
21
|
+
formatted << "#{ klass.command_invocation } "
|
22
|
+
end
|
23
|
+
|
24
|
+
# Add usage with required arguments
|
25
|
+
formatted << if klass && !klass.arguments.empty?
|
26
|
+
usage.to_s.gsub(/^#{name}/) do |match|
|
27
|
+
match << " " << klass.arguments.map{ |a| a.usage }.compact.join(' ')
|
28
|
+
end
|
29
|
+
else
|
30
|
+
usage.to_s
|
31
|
+
end
|
32
|
+
|
33
|
+
# Add required options
|
34
|
+
formatted << " #{required_options}"
|
35
|
+
|
36
|
+
# Strip and go!
|
37
|
+
formatted.strip
|
38
|
+
end
|
39
|
+
end
|
40
|
+
end
|
data/lib/petra/version.rb
CHANGED
@@ -0,0 +1,17 @@
|
|
1
|
+
App.machine_configs.register '<%= machine_name %>' do | base_config |
|
2
|
+
base_config.vm.define :<%= machine_name %> do | config |
|
3
|
+
config.vm.hostname = '<%= machine_name %>'
|
4
|
+
|
5
|
+
config.vm.network \
|
6
|
+
:forwarded_port,
|
7
|
+
:guest => 22,
|
8
|
+
:host => App.seeds[ '<%= machine_name %>' ][ 'ansible_ssh_port' ]
|
9
|
+
|
10
|
+
config.vm.provision :ansible do | ansible |
|
11
|
+
ansible.raw_arguments = '--extra-vars=@seeds/<%= machine_name %>.seed.yml'
|
12
|
+
ansible.inventory_path = 'hosts/local.hosts'
|
13
|
+
ansible.playbook = '<%= machine_name %>.yml'
|
14
|
+
ansible.verbose = true
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
@@ -0,0 +1,21 @@
|
|
1
|
+
# -*- mode: ruby -*-
|
2
|
+
# vi: set ft=ruby :
|
3
|
+
|
4
|
+
load 'lib/app.rb'
|
5
|
+
|
6
|
+
Vagrant.configure( '2' ) do | config |
|
7
|
+
config.vm.box = 'precise64'
|
8
|
+
config.vm.box_url = 'http://files.vagrantup.com/precise64.box'
|
9
|
+
|
10
|
+
config.vm.provider :virtualbox do | vb |
|
11
|
+
vb.customize [
|
12
|
+
'modifyvm',
|
13
|
+
:id,
|
14
|
+
'--memory',
|
15
|
+
'512'
|
16
|
+
]
|
17
|
+
end
|
18
|
+
|
19
|
+
App.load_seeds!
|
20
|
+
App.load_machines! config
|
21
|
+
end
|
@@ -0,0 +1 @@
|
|
1
|
+
127.0.0.1
|
@@ -0,0 +1,63 @@
|
|
1
|
+
require 'yaml'
|
2
|
+
|
3
|
+
module App
|
4
|
+
extend self
|
5
|
+
|
6
|
+
attr_accessor \
|
7
|
+
:seeds,
|
8
|
+
:machine_configs,
|
9
|
+
:root
|
10
|
+
|
11
|
+
class Hashy < Hash
|
12
|
+
alias_method :__old_get__ , :[]
|
13
|
+
|
14
|
+
def get( key )
|
15
|
+
if has_key?( key )
|
16
|
+
__old_get__ key
|
17
|
+
else
|
18
|
+
self[ key ] = self.class.new
|
19
|
+
end
|
20
|
+
end
|
21
|
+
alias_method :[] , :get
|
22
|
+
|
23
|
+
def register( key , &block )
|
24
|
+
self[ key ] = block
|
25
|
+
end
|
26
|
+
end
|
27
|
+
|
28
|
+
self.machine_configs = Hashy.new
|
29
|
+
self.seeds = Hashy.new
|
30
|
+
|
31
|
+
self.root = File.expand_path "#{ __FILE__ }/../.."
|
32
|
+
|
33
|
+
def load_seed!( seed )
|
34
|
+
seed_name = seed.split( '/' ).last.split( '.' ).first
|
35
|
+
data = YAML.load_file seed
|
36
|
+
seeds[ seed_name ] = data
|
37
|
+
end
|
38
|
+
|
39
|
+
def load_seeds!
|
40
|
+
Dir[ "#{ root }/seeds/**/**.seed.yml" ].each do | seed |
|
41
|
+
load_seed! seed
|
42
|
+
end
|
43
|
+
end
|
44
|
+
|
45
|
+
def load_machines!( config )
|
46
|
+
Dir[ "#{ root }/machines/**/**.vagrant.rb" ].each do | machine |
|
47
|
+
load machine
|
48
|
+
end
|
49
|
+
|
50
|
+
machines =
|
51
|
+
if ENV[ 'MACHINES' ]
|
52
|
+
ENV[ 'MACHINES' ].split ','
|
53
|
+
else
|
54
|
+
machine_configs.keys
|
55
|
+
end
|
56
|
+
|
57
|
+
machines.each do | machine |
|
58
|
+
if machine_config = machine_configs[ machine ]
|
59
|
+
instance_exec config , &machine_config
|
60
|
+
end
|
61
|
+
end
|
62
|
+
end
|
63
|
+
end
|
@@ -0,0 +1,16 @@
|
|
1
|
+
---
|
2
|
+
- name: update apt
|
3
|
+
apt: update_cache=yes cache_valid_time=3600
|
4
|
+
sudo: yes
|
5
|
+
|
6
|
+
- name: install common packages
|
7
|
+
apt: pkg={{ item }}
|
8
|
+
sudo: yes
|
9
|
+
with_items:
|
10
|
+
- curl
|
11
|
+
- git
|
12
|
+
- screen
|
13
|
+
- subversion
|
14
|
+
- traceroute
|
15
|
+
- vim
|
16
|
+
- build-essential
|
@@ -0,0 +1,16 @@
|
|
1
|
+
# -*- mode: yaml -*-
|
2
|
+
# vi: set ft=yaml :
|
3
|
+
|
4
|
+
# This is an example app seed file. It will not be ignored by
|
5
|
+
# the default `.gitignore` file included in this repository.
|
6
|
+
# Use it to keep track of the required Ansible key/value
|
7
|
+
# variable pairs required by your playbooks so that other users
|
8
|
+
# of this repository will simply need to copy in the required
|
9
|
+
# secret values. See the example key `super_secret_key` included
|
10
|
+
# below.
|
11
|
+
|
12
|
+
---
|
13
|
+
ansible_ssh_port: 42000
|
14
|
+
ansible_ssh_private_key_file: ~/.vagrant.d/insecure_private_key
|
15
|
+
ansible_ssh_user: vagrant
|
16
|
+
super_secret_key: example not real super secret value
|
@@ -0,0 +1,20 @@
|
|
1
|
+
# -*- mode: yaml -*-
|
2
|
+
# vi: set ft=yaml :
|
3
|
+
|
4
|
+
# This is a real, usable seed file. It will be ignored by
|
5
|
+
# the default `.gitignore` file included in this repository
|
6
|
+
# since it may contain actual secret values not meant to be
|
7
|
+
# included in your source repository. See the example key
|
8
|
+
# `super_secret_key` included below.
|
9
|
+
|
10
|
+
# Ultimately, these values will be passed as `--extra-vars` to the
|
11
|
+
# `ansible-playbook` command for provisioning your machine(s). This
|
12
|
+
# happens either by passing them to Vagrant during the machine
|
13
|
+
# provisioning step or during a playbook run using the `petra`
|
14
|
+
# command.
|
15
|
+
|
16
|
+
---
|
17
|
+
ansible_ssh_port: 42000
|
18
|
+
ansible_ssh_private_key_file: ~/.vagrant.d/insecure_private_key
|
19
|
+
ansible_ssh_user: vagrant
|
20
|
+
super_secret_key: actual super secret value
|
data/petra.gemspec
CHANGED
@@ -8,7 +8,7 @@ Gem::Specification.new do |spec|
|
|
8
8
|
spec.version = Petra::VERSION
|
9
9
|
spec.authors = ["Ryan Cook"]
|
10
10
|
spec.email = ["cookrn@gmail.com"]
|
11
|
-
spec.description = %q{A toolkit for managing Ansible projects.}
|
11
|
+
spec.description = %q{A toolkit for managing Ansible/Vagrant projects.}
|
12
12
|
spec.summary = "#{ spec.name } v#{ spec.version }"
|
13
13
|
spec.homepage = "https://github.com/cookrn/petra"
|
14
14
|
spec.license = "MIT"
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: petra
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ryan Cook
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2013-11-
|
11
|
+
date: 2013-11-22 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: thor
|
@@ -52,7 +52,7 @@ dependencies:
|
|
52
52
|
- - ! '>='
|
53
53
|
- !ruby/object:Gem::Version
|
54
54
|
version: '0'
|
55
|
-
description: A toolkit for managing Ansible projects.
|
55
|
+
description: A toolkit for managing Ansible/Vagrant projects.
|
56
56
|
email:
|
57
57
|
- cookrn@gmail.com
|
58
58
|
executables:
|
@@ -61,6 +61,7 @@ extensions: []
|
|
61
61
|
extra_rdoc_files: []
|
62
62
|
files:
|
63
63
|
- .gitignore
|
64
|
+
- CHANGELOG.md
|
64
65
|
- Gemfile
|
65
66
|
- LICENSE.txt
|
66
67
|
- README.md
|
@@ -68,7 +69,21 @@ files:
|
|
68
69
|
- bin/petra
|
69
70
|
- lib/petra.rb
|
70
71
|
- lib/petra/cli.rb
|
72
|
+
- lib/petra/cli/generate.rb
|
73
|
+
- lib/petra/cli/subcommand.rb
|
74
|
+
- lib/petra/patches/thor.rb
|
75
|
+
- lib/petra/patches/thor/command.rb
|
71
76
|
- lib/petra/version.rb
|
77
|
+
- lib/sources/machine/new/machines/%machine_name%.vagrant.rb.tt
|
78
|
+
- lib/sources/playbook/new/%playbook_name%.yml.tt
|
79
|
+
- lib/sources/project/new/.gitignore
|
80
|
+
- lib/sources/project/new/README.md.tt
|
81
|
+
- lib/sources/project/new/Vagrantfile
|
82
|
+
- lib/sources/project/new/hosts/local.hosts
|
83
|
+
- lib/sources/project/new/lib/app.rb
|
84
|
+
- lib/sources/project/new/roles/common/tasks/main.yml
|
85
|
+
- lib/sources/seed/new/seeds/%seed_name%.seed.example.yml
|
86
|
+
- lib/sources/seed/new/seeds/%seed_name%.seed.yml
|
72
87
|
- petra.gemspec
|
73
88
|
homepage: https://github.com/cookrn/petra
|
74
89
|
licenses:
|
@@ -93,5 +108,5 @@ rubyforge_project:
|
|
93
108
|
rubygems_version: 2.0.4
|
94
109
|
signing_key:
|
95
110
|
specification_version: 4
|
96
|
-
summary: petra v0.0.
|
111
|
+
summary: petra v0.0.2
|
97
112
|
test_files: []
|