rails_pwnerer 0.6.23 → 0.6.24
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.
- data/CHANGELOG +2 -0
- data/Manifest +2 -0
- data/README +4 -0
- data/lib/pwnage/app/files.rb +110 -0
- data/lib/pwnage/app/git.rb +79 -0
- data/lib/pwnage/app/main.rb +23 -12
- data/lib/pwnage/app/svn.rb +15 -108
- data/lib/rails_pwnerer.rb +2 -0
- data/rails_pwnerer.gemspec +3 -3
- metadata +5 -1
data/CHANGELOG
CHANGED
data/Manifest
CHANGED
@@ -6,7 +6,9 @@ ext/rpwn_setup_notice/extconf.rb
|
|
6
6
|
lib/pwnage/app/cluster_config.rb
|
7
7
|
lib/pwnage/app/config.rb
|
8
8
|
lib/pwnage/app/database.rb
|
9
|
+
lib/pwnage/app/files.rb
|
9
10
|
lib/pwnage/app/gems.rb
|
11
|
+
lib/pwnage/app/git.rb
|
10
12
|
lib/pwnage/app/main.rb
|
11
13
|
lib/pwnage/app/nginx_config.rb
|
12
14
|
lib/pwnage/app/scripts.rb
|
data/README
CHANGED
@@ -53,6 +53,10 @@ After you scaffold, you'll get good rubygems which put rpwn in your path.
|
|
53
53
|
4) Install your application:
|
54
54
|
sudo rpwn install svn+ssh://your.repository.host/path/to/your_application
|
55
55
|
|
56
|
+
or
|
57
|
+
|
58
|
+
sudo rpwn install you@your.repository.host/path/to/your_application.git
|
59
|
+
|
56
60
|
5) Reboot, or start the services right away:
|
57
61
|
sudo rpwn go live
|
58
62
|
|
@@ -0,0 +1,110 @@
|
|
1
|
+
# manages an application's file system
|
2
|
+
|
3
|
+
class RailsPwnage::App::Files
|
4
|
+
include RailsPwnage::Base
|
5
|
+
|
6
|
+
# dump the application files to the backup area
|
7
|
+
def dump_files(app_name, instance_name)
|
8
|
+
pwnerer_user = RailsPwnage::Config[app_name, instance_name][:pwnerer_user]
|
9
|
+
pwnerer_uid = uid_for_username(pwnerer_user)
|
10
|
+
pwnerer_gid = gid_for_username(pwnerer_user)
|
11
|
+
|
12
|
+
timestamp = Time.now.strftime '%Y%m%d%H%M%S'
|
13
|
+
dump_file = "files/#{app_name}.#{instance_name}_#{timestamp}.tar.gz"
|
14
|
+
|
15
|
+
backup_path = RailsPwnage::Config[app_name, instance_name][:backup_path]
|
16
|
+
app_path = RailsPwnage::Config[app_name, instance_name][:app_path]
|
17
|
+
Dir.chdir backup_path do
|
18
|
+
# create a cold copy of the application files
|
19
|
+
cold_copy = File.join('tmp', File.basename(app_path))
|
20
|
+
FileUtils.rm_r cold_copy if File.exists? cold_copy
|
21
|
+
FileUtils.cp_r app_path, 'tmp'
|
22
|
+
|
23
|
+
# remove the garbage in the cold copy
|
24
|
+
[RailsPwnage::App::Git, RailsPwnage::App::Svn].each do |mod|
|
25
|
+
mod.new.cleanup_app_caches cold_copy, instance_name, true
|
26
|
+
end
|
27
|
+
|
28
|
+
# pack and protect the cold copy
|
29
|
+
Dir.chdir 'tmp' do
|
30
|
+
system "tar -czf ../#{dump_file} #{File.basename(app_path)}"
|
31
|
+
end
|
32
|
+
File.chmod(400, dump_file)
|
33
|
+
File.chown(pwnerer_uid, pwnerer_gid, dump_file)
|
34
|
+
|
35
|
+
# clean up
|
36
|
+
FileUtils.rm_r cold_copy
|
37
|
+
end
|
38
|
+
end
|
39
|
+
|
40
|
+
# creates the directory scaffold in the application's backup dir
|
41
|
+
def scaffold_backup(app_name, instance_name)
|
42
|
+
pwnerer_user = RailsPwnage::Config[app_name, instance_name][:pwnerer_user]
|
43
|
+
pwnerer_uid = uid_for_username(pwnerer_user)
|
44
|
+
pwnerer_gid = gid_for_username(pwnerer_user)
|
45
|
+
|
46
|
+
backup_path = RailsPwnage::Config[app_name, instance_name][:backup_path]
|
47
|
+
FileUtils.mkpath backup_path unless File.exists? backup_path
|
48
|
+
File.chown(pwnerer_uid, pwnerer_gid, backup_path)
|
49
|
+
|
50
|
+
Dir.chdir(backup_path) do
|
51
|
+
['db', 'files', 'tmp'].each do |subdir|
|
52
|
+
Dir.mkdir subdir unless File.exists? subdir
|
53
|
+
File.chown pwnerer_uid, pwnerer_gid, subdir
|
54
|
+
end
|
55
|
+
end
|
56
|
+
end
|
57
|
+
|
58
|
+
# loads the latest file dump from the backup area
|
59
|
+
def load_files(app_name, instance_name)
|
60
|
+
backup_path = RailsPwnage::Config[app_name, instance_name][:backup_path]
|
61
|
+
app_path = RailsPwnage::Config[app_name, instance_name][:app_path]
|
62
|
+
|
63
|
+
dump_file = Dir.glob(File.join(backup_path, "files/#{app_name}.#{instance_name}_*")).max
|
64
|
+
restore_path = Pathname.new(File.join(app_path, '..')).cleanpath.to_s
|
65
|
+
Dir.chdir restore_path do
|
66
|
+
# find the latest dump and load it in
|
67
|
+
system "tar -xzf #{dump_file}"
|
68
|
+
end
|
69
|
+
end
|
70
|
+
|
71
|
+
# remove the application files
|
72
|
+
def drop_files(app_name, instance_name)
|
73
|
+
app_config = RailsPwnage::Config[app_name, instance_name]
|
74
|
+
# exit and don't complain if the app is busted
|
75
|
+
return unless app_config and File.exists? app_config[:app_path]
|
76
|
+
|
77
|
+
app_path = app_config[:app_path]
|
78
|
+
FileUtils.rm_r app_path if File.exists? app_path
|
79
|
+
end
|
80
|
+
|
81
|
+
def manage(app_name, instance_name, action)
|
82
|
+
case action
|
83
|
+
when :checkpoint
|
84
|
+
dump_files app_name, instance_name
|
85
|
+
when :rollback
|
86
|
+
drop_files app_name, instance_name
|
87
|
+
load_files app_name, instance_name
|
88
|
+
when :console
|
89
|
+
Dir.chdir(RailsPwnage::Config[app_name, instance_name][:app_path]) do
|
90
|
+
Kernel.system 'ruby script/console production'
|
91
|
+
end
|
92
|
+
when :db_console
|
93
|
+
Dir.chdir(RailsPwnage::Config[app_name, instance_name][:app_path]) do
|
94
|
+
Kernel.system 'ruby script/dbconsole --include-password production'
|
95
|
+
end
|
96
|
+
end
|
97
|
+
end
|
98
|
+
|
99
|
+
def setup(app_name, instance_name)
|
100
|
+
scaffold_backup(app_name, instance_name)
|
101
|
+
end
|
102
|
+
|
103
|
+
def remove(app_name, instance_name)
|
104
|
+
drop_files(app_name, instance_name)
|
105
|
+
end
|
106
|
+
|
107
|
+
def update(app_name, instance_name)
|
108
|
+
scaffold_backup(app_name, instance_name)
|
109
|
+
end
|
110
|
+
end
|
@@ -0,0 +1,79 @@
|
|
1
|
+
# checks out and updates the application from a Git repository
|
2
|
+
|
3
|
+
class RailsPwnage::App::Git
|
4
|
+
include RailsPwnage::Base
|
5
|
+
|
6
|
+
# remove any files not in Git in the application dir
|
7
|
+
def cleanup_app_dir(app_name, instance_name, target_dir, app_name_is_dir = false)
|
8
|
+
Dir.chdir(app_name_is_dir ? app_name : RailsPwnage::Config[app_name, instance_name][:app_path]) do
|
9
|
+
Kernel.system "git clean -f -x -- ."
|
10
|
+
Kernel.system "git checkout -- ."
|
11
|
+
end
|
12
|
+
end
|
13
|
+
|
14
|
+
# clean up the application directory by removing caches
|
15
|
+
def cleanup_app_caches(app_name, instance_name, app_name_is_dir = false)
|
16
|
+
app_path = app_name_is_dir ? app_name : RailsPwnage::Config[app_name, instance_name][:app_path]
|
17
|
+
return unless File.exists?(File.join(app_path, '.git'))
|
18
|
+
|
19
|
+
# TODO: learn how Rails caches work and kill those too
|
20
|
+
['app', 'lib', 'public/images',
|
21
|
+
'public/javascripts', 'public/stylesheets', 'script',
|
22
|
+
'test', 'tmp', 'vendor'
|
23
|
+
].each { |dir| cleanup_app_dir app_name, instance_name, dir, app_name_is_dir }
|
24
|
+
end
|
25
|
+
|
26
|
+
# reverts the config changes made by rpwn, so git fetch doesn't get confused
|
27
|
+
def revert_config_changes(app_name, instance_name)
|
28
|
+
Dir.chdir RailsPwnage::Config[app_name, instance_name][:app_path] do
|
29
|
+
['config'].each do |dir|
|
30
|
+
Kernel.system "git clean -f -- #{dir}"
|
31
|
+
Kernel.system "git checkout -- #{dir}"
|
32
|
+
end
|
33
|
+
end
|
34
|
+
end
|
35
|
+
|
36
|
+
def git_update(app_name, instance_name)
|
37
|
+
Dir.chdir RailsPwnage::Config[app_name, instance_name][:app_path] do
|
38
|
+
print "Doing Git fetch, please enter your password if prompted...\n"
|
39
|
+
Kernel.system 'git fetch origin'
|
40
|
+
end
|
41
|
+
end
|
42
|
+
|
43
|
+
def update(app_name, instance_name)
|
44
|
+
app_path = RailsPwnage::Config[app_name, instance_name][:app_path]
|
45
|
+
return unless File.exists?(File.join(app_path, '.git'))
|
46
|
+
# TODO: maybe backup old version before issuing the svn update?
|
47
|
+
|
48
|
+
cleanup_app_caches app_name, instance_name
|
49
|
+
revert_config_changes app_name, instance_name
|
50
|
+
git_update app_name, instance_name
|
51
|
+
end
|
52
|
+
|
53
|
+
def cleanup
|
54
|
+
# git checkout -- paths
|
55
|
+
end
|
56
|
+
|
57
|
+
def checkout(remote_path, app_name, instance_name)
|
58
|
+
if hash_index = remote_path.rindex('#')
|
59
|
+
git_repository = remote_path[0, hash_index]
|
60
|
+
git_branch = remote_path[(hash_index + 1)..-1]
|
61
|
+
else
|
62
|
+
git_repository = remote_path
|
63
|
+
git_branch = 'master'
|
64
|
+
end
|
65
|
+
|
66
|
+
return :next unless git_repository =~ /\.git$/
|
67
|
+
app_path = RailsPwnage::Config[app_name, instance_name][:app_path]
|
68
|
+
|
69
|
+
FileUtils.rm_rf app_path
|
70
|
+
system "git clone #{git_repository} #{app_path}"
|
71
|
+
FileUtils.mkpath app_path unless File.exists? app_path
|
72
|
+
Dir.chdir app_path do
|
73
|
+
system "git checkout -q origin/#{git_branch}"
|
74
|
+
end
|
75
|
+
|
76
|
+
# check that we really checked out a Rails app
|
77
|
+
return check_rails_root(app_path) ? :ok : false
|
78
|
+
end
|
79
|
+
end
|
data/lib/pwnage/app/main.rb
CHANGED
@@ -12,17 +12,28 @@ module RailsPwnage::App
|
|
12
12
|
end
|
13
13
|
|
14
14
|
# installs an application given its SVN path
|
15
|
-
def self.install(
|
16
|
-
app_name = File.basename
|
15
|
+
def self.install(remote_path, instance_name)
|
16
|
+
app_name = File.basename remote_path
|
17
|
+
app_name = app_name[0, app_name.rindex('#')] if app_name.rindex '#'
|
18
|
+
app_name = app_name[0, app_name.rindex('.')] if app_name.rindex '.'
|
17
19
|
instance_magic(app_name, instance_name) do |app, instance|
|
18
20
|
Config.new.alloc app, instance
|
19
|
-
|
20
|
-
if
|
21
|
-
|
21
|
+
success = Git.new.checkout remote_path, app, instance
|
22
|
+
if success == :next
|
23
|
+
success = Svn.new.checkout remote_path, app, instance
|
24
|
+
end
|
25
|
+
if success == :ok
|
26
|
+
[Config, Files, Gems, Database, ClusterConfig, NginxConfig, Scripts].each do |mod|
|
22
27
|
mod.new.setup app, instance
|
23
28
|
end
|
24
29
|
else
|
25
|
-
|
30
|
+
if success == :next
|
31
|
+
print "rails_pwange only supports git and subversion at this time. \n"
|
32
|
+
else
|
33
|
+
print "You didn't checkout a Rails application. Check your remote path.\n"
|
34
|
+
end
|
35
|
+
|
36
|
+
[Files, Config].each do |mod|
|
26
37
|
mod.new.remove app, instance
|
27
38
|
end
|
28
39
|
end
|
@@ -33,7 +44,7 @@ module RailsPwnage::App
|
|
33
44
|
def self.update(app_name, instance_name)
|
34
45
|
instance_magic(app_name, instance_name) do |app, instance|
|
35
46
|
update_app app, instance do
|
36
|
-
[Svn, Config, Gems, Database, Scripts].each do |mod|
|
47
|
+
[Git, Svn, Config, Gems, Database, Scripts].each do |mod|
|
37
48
|
mod.new.update app, instance
|
38
49
|
end
|
39
50
|
end
|
@@ -48,7 +59,7 @@ module RailsPwnage::App
|
|
48
59
|
ClusterConfig.new.stop app, instance
|
49
60
|
Scripts.new.post_stop app, instance
|
50
61
|
|
51
|
-
[NginxConfig, ClusterConfig, Database,
|
62
|
+
[NginxConfig, ClusterConfig, Database, Files, Config].each do |mod|
|
52
63
|
mod.new.remove app, instance
|
53
64
|
end
|
54
65
|
end
|
@@ -75,13 +86,13 @@ module RailsPwnage::App
|
|
75
86
|
case action
|
76
87
|
when :checkpoint
|
77
88
|
ClusterConfig.new.manage app, instance, action
|
78
|
-
|
89
|
+
Files.new.manage app, instance, action
|
79
90
|
self.update_app app, instance do
|
80
91
|
Database.new.manage app, instance, action
|
81
92
|
end
|
82
93
|
when :rollback
|
83
94
|
self.update_app app, instance do
|
84
|
-
[
|
95
|
+
[Files, Database, ClusterConfig].each do |mod|
|
85
96
|
mod.new.manage app, instance, action
|
86
97
|
end
|
87
98
|
end
|
@@ -92,9 +103,9 @@ module RailsPwnage::App
|
|
92
103
|
end
|
93
104
|
end
|
94
105
|
when :console
|
95
|
-
|
106
|
+
Files.new.manage app, instance, action
|
96
107
|
when :db_console
|
97
|
-
|
108
|
+
Files.new.manage app, instance, action
|
98
109
|
when :db_reset
|
99
110
|
app_config = RailsPwnage::Config[app, instance]
|
100
111
|
unless app_config[:enable_db_reset]
|
data/lib/pwnage/app/svn.rb
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
# checks out the application
|
1
|
+
# checks out and updates the application from a Subversion repository
|
2
2
|
|
3
3
|
require 'English'
|
4
4
|
require 'fileutils'
|
@@ -8,78 +8,6 @@ require 'rexml/document'
|
|
8
8
|
class RailsPwnage::App::Svn
|
9
9
|
include RailsPwnage::Base
|
10
10
|
|
11
|
-
def scaffold_backup(app_name, instance_name)
|
12
|
-
pwnerer_user = RailsPwnage::Config[app_name, instance_name][:pwnerer_user]
|
13
|
-
pwnerer_uid = uid_for_username(pwnerer_user)
|
14
|
-
pwnerer_gid = gid_for_username(pwnerer_user)
|
15
|
-
|
16
|
-
backup_path = RailsPwnage::Config[app_name, instance_name][:backup_path]
|
17
|
-
FileUtils.mkpath backup_path unless File.exists? backup_path
|
18
|
-
File.chown(pwnerer_uid, pwnerer_gid, backup_path)
|
19
|
-
|
20
|
-
Dir.chdir(backup_path) do
|
21
|
-
['db', 'files', 'tmp'].each do |subdir|
|
22
|
-
Dir.mkdir subdir unless File.exists? subdir
|
23
|
-
File.chown pwnerer_uid, pwnerer_gid, subdir
|
24
|
-
end
|
25
|
-
end
|
26
|
-
end
|
27
|
-
|
28
|
-
# dump the application files to the backup area
|
29
|
-
def dump_files(app_name, instance_name)
|
30
|
-
pwnerer_user = RailsPwnage::Config[app_name, instance_name][:pwnerer_user]
|
31
|
-
pwnerer_uid = uid_for_username(pwnerer_user)
|
32
|
-
pwnerer_gid = gid_for_username(pwnerer_user)
|
33
|
-
|
34
|
-
timestamp = Time.now.strftime '%Y%m%d%H%M%S'
|
35
|
-
dump_file = "files/#{app_name}.#{instance_name}_#{timestamp}.tar.gz"
|
36
|
-
|
37
|
-
backup_path = RailsPwnage::Config[app_name, instance_name][:backup_path]
|
38
|
-
app_path = RailsPwnage::Config[app_name, instance_name][:app_path]
|
39
|
-
Dir.chdir backup_path do
|
40
|
-
# create a cold copy of the application files
|
41
|
-
cold_copy = File.join('tmp', File.basename(app_path))
|
42
|
-
FileUtils.rm_r cold_copy if File.exists? cold_copy
|
43
|
-
FileUtils.cp_r app_path, 'tmp'
|
44
|
-
|
45
|
-
# remove the garbage in the cold copy
|
46
|
-
cleanup_app_caches cold_copy, instance_name, true
|
47
|
-
|
48
|
-
# pack and protect the cold copy
|
49
|
-
Dir.chdir 'tmp' do
|
50
|
-
system "tar -czf ../#{dump_file} #{File.basename(app_path)}"
|
51
|
-
end
|
52
|
-
File.chmod(400, dump_file)
|
53
|
-
File.chown(pwnerer_uid, pwnerer_gid, dump_file)
|
54
|
-
|
55
|
-
# clean up
|
56
|
-
FileUtils.rm_r cold_copy
|
57
|
-
end
|
58
|
-
end
|
59
|
-
|
60
|
-
# loads the latest file dump from the backup area
|
61
|
-
def load_files(app_name, instance_name)
|
62
|
-
backup_path = RailsPwnage::Config[app_name, instance_name][:backup_path]
|
63
|
-
app_path = RailsPwnage::Config[app_name, instance_name][:app_path]
|
64
|
-
|
65
|
-
dump_file = Dir.glob(File.join(backup_path, "files/#{app_name}.#{instance_name}_*")).max
|
66
|
-
restore_path = Pathname.new(File.join(app_path, '..')).cleanpath.to_s
|
67
|
-
Dir.chdir restore_path do
|
68
|
-
# find the latest dump and load it in
|
69
|
-
system "tar -xzf #{dump_file}"
|
70
|
-
end
|
71
|
-
end
|
72
|
-
|
73
|
-
# remove the application files
|
74
|
-
def drop_files(app_name, instance_name)
|
75
|
-
app_config = RailsPwnage::Config[app_name, instance_name]
|
76
|
-
# exit and don't complain if the app is busted
|
77
|
-
return unless app_config and File.exists? app_config[:app_path]
|
78
|
-
|
79
|
-
app_path = app_config[:app_path]
|
80
|
-
FileUtils.rm_r app_path if File.exists? app_path
|
81
|
-
end
|
82
|
-
|
83
11
|
# remove any files not in SVN in the application dir
|
84
12
|
def cleanup_app_dir(app_name, instance_name, target_dir, app_name_is_dir = false)
|
85
13
|
Dir.chdir(app_name_is_dir ? app_name : RailsPwnage::Config[app_name, instance_name][:app_path]) do
|
@@ -98,6 +26,9 @@ class RailsPwnage::App::Svn
|
|
98
26
|
|
99
27
|
# clean up the application directory by removing caches
|
100
28
|
def cleanup_app_caches(app_name, instance_name, app_name_is_dir = false)
|
29
|
+
app_path = app_name_is_dir ? app_name : RailsPwnage::Config[app_name, instance_name][:app_path]
|
30
|
+
return unless File.exists?(File.join(app_path, '.svn'))
|
31
|
+
|
101
32
|
# TODO: learn how Rails caches work and kill those too
|
102
33
|
['app', 'lib', 'public/images',
|
103
34
|
'public/javascripts', 'public/stylesheets', 'script',
|
@@ -105,24 +36,6 @@ class RailsPwnage::App::Svn
|
|
105
36
|
].each { |dir| cleanup_app_dir app_name, instance_name, dir, app_name_is_dir }
|
106
37
|
end
|
107
38
|
|
108
|
-
def manage(app_name, instance_name, action)
|
109
|
-
case action
|
110
|
-
when :checkpoint
|
111
|
-
dump_files app_name, instance_name
|
112
|
-
when :rollback
|
113
|
-
drop_files app_name, instance_name
|
114
|
-
load_files app_name, instance_name
|
115
|
-
when :console
|
116
|
-
Dir.chdir(RailsPwnage::Config[app_name, instance_name][:app_path]) do
|
117
|
-
Kernel.system 'ruby script/console production'
|
118
|
-
end
|
119
|
-
when :db_console
|
120
|
-
Dir.chdir(RailsPwnage::Config[app_name, instance_name][:app_path]) do
|
121
|
-
Kernel.system 'ruby script/dbconsole --include-password production'
|
122
|
-
end
|
123
|
-
end
|
124
|
-
end
|
125
|
-
|
126
39
|
# reverts the config changes made by rpwn, so svn update doesn't get confused
|
127
40
|
def revert_config_changes(app_name, instance_name)
|
128
41
|
Dir.chdir RailsPwnage::Config[app_name, instance_name][:app_path] do
|
@@ -143,30 +56,24 @@ class RailsPwnage::App::Svn
|
|
143
56
|
end
|
144
57
|
end
|
145
58
|
|
146
|
-
def checkout(
|
59
|
+
def checkout(remote_path, app_name, instance_name)
|
147
60
|
app_path = RailsPwnage::Config[app_name, instance_name][:app_path]
|
148
|
-
|
61
|
+
return :next unless remote_path =~ /svn.*\:\/\//
|
62
|
+
|
63
|
+
system "svn co #{remote_path} #{app_path}"
|
64
|
+
|
149
65
|
# check that we really checked out a Rails app
|
150
|
-
|
151
|
-
print "You didn't checkout a Rails application. Check your path.\n" unless sanity
|
152
|
-
return sanity
|
153
|
-
end
|
154
|
-
|
155
|
-
def setup(app_name, instance_name)
|
156
|
-
scaffold_backup(app_name, instance_name)
|
66
|
+
return check_rails_root(app_path) ? :ok : false
|
157
67
|
end
|
158
68
|
|
159
69
|
def update(app_name, instance_name)
|
160
|
-
|
70
|
+
app_path = RailsPwnage::Config[app_name, instance_name][:app_path]
|
71
|
+
return unless File.exists?(File.join(app_path, '.svn'))
|
161
72
|
|
162
73
|
# TODO: maybe backup old version before issuing the svn update?
|
163
74
|
|
164
|
-
cleanup_app_caches
|
165
|
-
revert_config_changes
|
166
|
-
svn_update
|
167
|
-
end
|
168
|
-
|
169
|
-
def remove(app_name, instance_name)
|
170
|
-
drop_files(app_name, instance_name)
|
75
|
+
cleanup_app_caches app_name, instance_name
|
76
|
+
revert_config_changes app_name, instance_name
|
77
|
+
svn_update app_name, instance_name
|
171
78
|
end
|
172
79
|
end
|
data/lib/rails_pwnerer.rb
CHANGED
@@ -46,7 +46,9 @@ require 'pwnage/app/main.rb'
|
|
46
46
|
require 'pwnage/app/config.rb'
|
47
47
|
require 'pwnage/app/cluster_config.rb'
|
48
48
|
require 'pwnage/app/database.rb'
|
49
|
+
require 'pwnage/app/files.rb'
|
49
50
|
require 'pwnage/app/gems.rb'
|
51
|
+
require 'pwnage/app/git.rb'
|
50
52
|
require 'pwnage/app/nginx_config.rb'
|
51
53
|
require 'pwnage/app/scripts.rb'
|
52
54
|
require 'pwnage/app/svn.rb'
|
data/rails_pwnerer.gemspec
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
|
3
3
|
Gem::Specification.new do |s|
|
4
4
|
s.name = %q{rails_pwnerer}
|
5
|
-
s.version = "0.6.
|
5
|
+
s.version = "0.6.24"
|
6
6
|
|
7
7
|
s.required_rubygems_version = Gem::Requirement.new(">= 1.2") if s.respond_to? :required_rubygems_version=
|
8
8
|
s.authors = ["Victor Costan"]
|
@@ -12,8 +12,8 @@ Gem::Specification.new do |s|
|
|
12
12
|
s.email = %q{victor@costan.us}
|
13
13
|
s.executables = ["rpwn", "rpwnctl", "rpwndev"]
|
14
14
|
s.extensions = ["ext/rpwn_setup_notice/extconf.rb"]
|
15
|
-
s.extra_rdoc_files = ["bin/rpwn", "bin/rpwnctl", "bin/rpwndev", "CHANGELOG", "ext/rpwn_setup_notice/extconf.rb", "lib/pwnage/app/cluster_config.rb", "lib/pwnage/app/config.rb", "lib/pwnage/app/database.rb", "lib/pwnage/app/gems.rb", "lib/pwnage/app/main.rb", "lib/pwnage/app/nginx_config.rb", "lib/pwnage/app/scripts.rb", "lib/pwnage/app/svn.rb", "lib/pwnage/base/atomics.rb", "lib/pwnage/base/cpus.rb", "lib/pwnage/base/dirs.rb", "lib/pwnage/base/gems.rb", "lib/pwnage/base/hostname.rb", "lib/pwnage/base/packages.rb", "lib/pwnage/base/process.rb", "lib/pwnage/base/rails.rb", "lib/pwnage/base/startup.rb", "lib/pwnage/base.rb", "lib/pwnage/config/app.rb", "lib/pwnage/config/main.rb", "lib/pwnage/config/paths.rb", "lib/pwnage/config/ports.rb", "lib/pwnage/config/repository.rb", "lib/pwnage/ctl_executor.rb", "lib/pwnage/dev_executor.rb", "lib/pwnage/executor.rb", "lib/pwnage/scaffolds/config.rb", "lib/pwnage/scaffolds/dir_permissions.rb", "lib/pwnage/scaffolds/dirs.rb", "lib/pwnage/scaffolds/gems.rb", "lib/pwnage/scaffolds/hook_daemon.rb", "lib/pwnage/scaffolds/hook_dyndns.rb", "lib/pwnage/scaffolds/mysql_config.rb", "lib/pwnage/scaffolds/packages.rb", "lib/pwnage/scaffolds/rubygems.rb", "lib/pwnage/scaffolds/sshd.rb", "lib/pwnage/util/kill_process_set.rb", "lib/pwnage/util/main.rb", "lib/rails_pwnerer.rb", "LICENSE", "README"]
|
16
|
-
s.files = ["bin/rpwn", "bin/rpwnctl", "bin/rpwndev", "CHANGELOG", "ext/rpwn_setup_notice/extconf.rb", "lib/pwnage/app/cluster_config.rb", "lib/pwnage/app/config.rb", "lib/pwnage/app/database.rb", "lib/pwnage/app/gems.rb", "lib/pwnage/app/main.rb", "lib/pwnage/app/nginx_config.rb", "lib/pwnage/app/scripts.rb", "lib/pwnage/app/svn.rb", "lib/pwnage/base/atomics.rb", "lib/pwnage/base/cpus.rb", "lib/pwnage/base/dirs.rb", "lib/pwnage/base/gems.rb", "lib/pwnage/base/hostname.rb", "lib/pwnage/base/packages.rb", "lib/pwnage/base/process.rb", "lib/pwnage/base/rails.rb", "lib/pwnage/base/startup.rb", "lib/pwnage/base.rb", "lib/pwnage/config/app.rb", "lib/pwnage/config/main.rb", "lib/pwnage/config/paths.rb", "lib/pwnage/config/ports.rb", "lib/pwnage/config/repository.rb", "lib/pwnage/ctl_executor.rb", "lib/pwnage/dev_executor.rb", "lib/pwnage/executor.rb", "lib/pwnage/scaffolds/config.rb", "lib/pwnage/scaffolds/dir_permissions.rb", "lib/pwnage/scaffolds/dirs.rb", "lib/pwnage/scaffolds/gems.rb", "lib/pwnage/scaffolds/hook_daemon.rb", "lib/pwnage/scaffolds/hook_dyndns.rb", "lib/pwnage/scaffolds/mysql_config.rb", "lib/pwnage/scaffolds/packages.rb", "lib/pwnage/scaffolds/rubygems.rb", "lib/pwnage/scaffolds/sshd.rb", "lib/pwnage/util/kill_process_set.rb", "lib/pwnage/util/main.rb", "lib/rails_pwnerer.rb", "LICENSE", "Manifest", "Rakefile", "README", "RUBYFORGE", "rails_pwnerer.gemspec"]
|
15
|
+
s.extra_rdoc_files = ["bin/rpwn", "bin/rpwnctl", "bin/rpwndev", "CHANGELOG", "ext/rpwn_setup_notice/extconf.rb", "lib/pwnage/app/cluster_config.rb", "lib/pwnage/app/config.rb", "lib/pwnage/app/database.rb", "lib/pwnage/app/files.rb", "lib/pwnage/app/gems.rb", "lib/pwnage/app/git.rb", "lib/pwnage/app/main.rb", "lib/pwnage/app/nginx_config.rb", "lib/pwnage/app/scripts.rb", "lib/pwnage/app/svn.rb", "lib/pwnage/base/atomics.rb", "lib/pwnage/base/cpus.rb", "lib/pwnage/base/dirs.rb", "lib/pwnage/base/gems.rb", "lib/pwnage/base/hostname.rb", "lib/pwnage/base/packages.rb", "lib/pwnage/base/process.rb", "lib/pwnage/base/rails.rb", "lib/pwnage/base/startup.rb", "lib/pwnage/base.rb", "lib/pwnage/config/app.rb", "lib/pwnage/config/main.rb", "lib/pwnage/config/paths.rb", "lib/pwnage/config/ports.rb", "lib/pwnage/config/repository.rb", "lib/pwnage/ctl_executor.rb", "lib/pwnage/dev_executor.rb", "lib/pwnage/executor.rb", "lib/pwnage/scaffolds/config.rb", "lib/pwnage/scaffolds/dir_permissions.rb", "lib/pwnage/scaffolds/dirs.rb", "lib/pwnage/scaffolds/gems.rb", "lib/pwnage/scaffolds/hook_daemon.rb", "lib/pwnage/scaffolds/hook_dyndns.rb", "lib/pwnage/scaffolds/mysql_config.rb", "lib/pwnage/scaffolds/packages.rb", "lib/pwnage/scaffolds/rubygems.rb", "lib/pwnage/scaffolds/sshd.rb", "lib/pwnage/util/kill_process_set.rb", "lib/pwnage/util/main.rb", "lib/rails_pwnerer.rb", "LICENSE", "README"]
|
16
|
+
s.files = ["bin/rpwn", "bin/rpwnctl", "bin/rpwndev", "CHANGELOG", "ext/rpwn_setup_notice/extconf.rb", "lib/pwnage/app/cluster_config.rb", "lib/pwnage/app/config.rb", "lib/pwnage/app/database.rb", "lib/pwnage/app/files.rb", "lib/pwnage/app/gems.rb", "lib/pwnage/app/git.rb", "lib/pwnage/app/main.rb", "lib/pwnage/app/nginx_config.rb", "lib/pwnage/app/scripts.rb", "lib/pwnage/app/svn.rb", "lib/pwnage/base/atomics.rb", "lib/pwnage/base/cpus.rb", "lib/pwnage/base/dirs.rb", "lib/pwnage/base/gems.rb", "lib/pwnage/base/hostname.rb", "lib/pwnage/base/packages.rb", "lib/pwnage/base/process.rb", "lib/pwnage/base/rails.rb", "lib/pwnage/base/startup.rb", "lib/pwnage/base.rb", "lib/pwnage/config/app.rb", "lib/pwnage/config/main.rb", "lib/pwnage/config/paths.rb", "lib/pwnage/config/ports.rb", "lib/pwnage/config/repository.rb", "lib/pwnage/ctl_executor.rb", "lib/pwnage/dev_executor.rb", "lib/pwnage/executor.rb", "lib/pwnage/scaffolds/config.rb", "lib/pwnage/scaffolds/dir_permissions.rb", "lib/pwnage/scaffolds/dirs.rb", "lib/pwnage/scaffolds/gems.rb", "lib/pwnage/scaffolds/hook_daemon.rb", "lib/pwnage/scaffolds/hook_dyndns.rb", "lib/pwnage/scaffolds/mysql_config.rb", "lib/pwnage/scaffolds/packages.rb", "lib/pwnage/scaffolds/rubygems.rb", "lib/pwnage/scaffolds/sshd.rb", "lib/pwnage/util/kill_process_set.rb", "lib/pwnage/util/main.rb", "lib/rails_pwnerer.rb", "LICENSE", "Manifest", "Rakefile", "README", "RUBYFORGE", "rails_pwnerer.gemspec"]
|
17
17
|
s.has_rdoc = true
|
18
18
|
s.homepage = %q{http://www.costan.us/rails_pwnage}
|
19
19
|
s.rdoc_options = ["--line-numbers", "--inline-source", "--title", "Rails_pwnerer", "--main", "README"]
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rails_pwnerer
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.6.
|
4
|
+
version: 0.6.24
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Victor Costan
|
@@ -39,7 +39,9 @@ extra_rdoc_files:
|
|
39
39
|
- lib/pwnage/app/cluster_config.rb
|
40
40
|
- lib/pwnage/app/config.rb
|
41
41
|
- lib/pwnage/app/database.rb
|
42
|
+
- lib/pwnage/app/files.rb
|
42
43
|
- lib/pwnage/app/gems.rb
|
44
|
+
- lib/pwnage/app/git.rb
|
43
45
|
- lib/pwnage/app/main.rb
|
44
46
|
- lib/pwnage/app/nginx_config.rb
|
45
47
|
- lib/pwnage/app/scripts.rb
|
@@ -86,7 +88,9 @@ files:
|
|
86
88
|
- lib/pwnage/app/cluster_config.rb
|
87
89
|
- lib/pwnage/app/config.rb
|
88
90
|
- lib/pwnage/app/database.rb
|
91
|
+
- lib/pwnage/app/files.rb
|
89
92
|
- lib/pwnage/app/gems.rb
|
93
|
+
- lib/pwnage/app/git.rb
|
90
94
|
- lib/pwnage/app/main.rb
|
91
95
|
- lib/pwnage/app/nginx_config.rb
|
92
96
|
- lib/pwnage/app/scripts.rb
|