rails_pwnerer 0.6.27 → 0.6.29
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 +4 -0
- data/Manifest +42 -40
- data/README +4 -0
- data/ext/rpwn_setup_notice/extconf.rb +23 -2
- data/lib/pwnage/app/config.rb +1 -1
- data/lib/pwnage/app/main.rb +8 -6
- data/lib/pwnage/app/perforce.rb +169 -0
- data/lib/pwnage/base/input.rb +19 -0
- data/lib/pwnage/dev_executor.rb +33 -0
- data/lib/pwnage/scaffolds/config.rb +1 -1
- data/lib/pwnage/scaffolds/gems.rb +4 -1
- data/lib/rails_pwnerer.rb +2 -0
- data/rails_pwnerer.gemspec +5 -5
- metadata +82 -78
data/CHANGELOG
CHANGED
@@ -1,3 +1,7 @@
|
|
1
|
+
v0.6.29. Support for checking out from Perforce.
|
2
|
+
|
3
|
+
v0.6.28. rpwndev can help add a Rails application tree to a version control repository.
|
4
|
+
|
1
5
|
v0.6.27. Fixed cpu detection so it doesn't crash if neither sys-cpu nor procfs are available.
|
2
6
|
|
3
7
|
v0.6.26. Fixed local git configuration so updates work and don't wipe logs.
|
data/Manifest
CHANGED
@@ -1,52 +1,54 @@
|
|
1
|
+
README
|
2
|
+
ext/rpwn_setup_notice/extconf.rb
|
3
|
+
LICENSE
|
4
|
+
RUBYFORGE
|
5
|
+
Rakefile
|
6
|
+
Manifest
|
1
7
|
bin/rpwn
|
2
|
-
bin/rpwnctl
|
3
8
|
bin/rpwndev
|
9
|
+
bin/rpwnctl
|
4
10
|
CHANGELOG
|
5
|
-
|
6
|
-
lib/pwnage/
|
7
|
-
lib/pwnage/
|
8
|
-
lib/pwnage/
|
9
|
-
lib/pwnage/
|
11
|
+
lib/rails_pwnerer.rb
|
12
|
+
lib/pwnage/util/kill_process_set.rb
|
13
|
+
lib/pwnage/util/main.rb
|
14
|
+
lib/pwnage/executor.rb
|
15
|
+
lib/pwnage/scaffolds/hook_dyndns.rb
|
16
|
+
lib/pwnage/scaffolds/gems.rb
|
17
|
+
lib/pwnage/scaffolds/dir_permissions.rb
|
18
|
+
lib/pwnage/scaffolds/dirs.rb
|
19
|
+
lib/pwnage/scaffolds/config.rb
|
20
|
+
lib/pwnage/scaffolds/mysql_config.rb
|
21
|
+
lib/pwnage/scaffolds/packages.rb
|
22
|
+
lib/pwnage/scaffolds/sshd.rb
|
23
|
+
lib/pwnage/scaffolds/rubygems.rb
|
24
|
+
lib/pwnage/scaffolds/hook_daemon.rb
|
25
|
+
lib/pwnage/config/main.rb
|
26
|
+
lib/pwnage/config/repository.rb
|
27
|
+
lib/pwnage/config/frontends.rb
|
28
|
+
lib/pwnage/config/ports.rb
|
29
|
+
lib/pwnage/config/app.rb
|
30
|
+
lib/pwnage/config/paths.rb
|
31
|
+
lib/pwnage/ctl_executor.rb
|
32
|
+
lib/pwnage/base.rb
|
33
|
+
lib/pwnage/dev_executor.rb
|
10
34
|
lib/pwnage/app/gems.rb
|
11
|
-
lib/pwnage/app/git.rb
|
12
|
-
lib/pwnage/app/main.rb
|
13
35
|
lib/pwnage/app/nginx_config.rb
|
36
|
+
lib/pwnage/app/main.rb
|
14
37
|
lib/pwnage/app/scripts.rb
|
15
38
|
lib/pwnage/app/svn.rb
|
16
|
-
lib/pwnage/
|
39
|
+
lib/pwnage/app/perforce.rb
|
40
|
+
lib/pwnage/app/database.rb
|
41
|
+
lib/pwnage/app/config.rb
|
42
|
+
lib/pwnage/app/git.rb
|
43
|
+
lib/pwnage/app/cluster_config.rb
|
44
|
+
lib/pwnage/app/files.rb
|
45
|
+
lib/pwnage/base/hostname.rb
|
46
|
+
lib/pwnage/base/gems.rb
|
47
|
+
lib/pwnage/base/input.rb
|
17
48
|
lib/pwnage/base/cpus.rb
|
49
|
+
lib/pwnage/base/atomics.rb
|
18
50
|
lib/pwnage/base/dirs.rb
|
19
|
-
lib/pwnage/base/
|
20
|
-
lib/pwnage/base/hostname.rb
|
51
|
+
lib/pwnage/base/rails.rb
|
21
52
|
lib/pwnage/base/packages.rb
|
22
53
|
lib/pwnage/base/process.rb
|
23
|
-
lib/pwnage/base/rails.rb
|
24
54
|
lib/pwnage/base/startup.rb
|
25
|
-
lib/pwnage/base.rb
|
26
|
-
lib/pwnage/config/app.rb
|
27
|
-
lib/pwnage/config/frontends.rb
|
28
|
-
lib/pwnage/config/main.rb
|
29
|
-
lib/pwnage/config/paths.rb
|
30
|
-
lib/pwnage/config/ports.rb
|
31
|
-
lib/pwnage/config/repository.rb
|
32
|
-
lib/pwnage/ctl_executor.rb
|
33
|
-
lib/pwnage/dev_executor.rb
|
34
|
-
lib/pwnage/executor.rb
|
35
|
-
lib/pwnage/scaffolds/config.rb
|
36
|
-
lib/pwnage/scaffolds/dir_permissions.rb
|
37
|
-
lib/pwnage/scaffolds/dirs.rb
|
38
|
-
lib/pwnage/scaffolds/gems.rb
|
39
|
-
lib/pwnage/scaffolds/hook_daemon.rb
|
40
|
-
lib/pwnage/scaffolds/hook_dyndns.rb
|
41
|
-
lib/pwnage/scaffolds/mysql_config.rb
|
42
|
-
lib/pwnage/scaffolds/packages.rb
|
43
|
-
lib/pwnage/scaffolds/rubygems.rb
|
44
|
-
lib/pwnage/scaffolds/sshd.rb
|
45
|
-
lib/pwnage/util/kill_process_set.rb
|
46
|
-
lib/pwnage/util/main.rb
|
47
|
-
lib/rails_pwnerer.rb
|
48
|
-
LICENSE
|
49
|
-
Manifest
|
50
|
-
Rakefile
|
51
|
-
README
|
52
|
-
RUBYFORGE
|
data/README
CHANGED
@@ -1,9 +1,30 @@
|
|
1
1
|
# invoked when the gem is installed
|
2
2
|
|
3
3
|
# cheat to get the gem installed in the right place even on Debians
|
4
|
-
|
5
|
-
|
4
|
+
['rpwn', 'rpwnctl', 'rpwndev'].each do |file|
|
5
|
+
binpath = "/usr/bin/#{file}"
|
6
|
+
unless File.exists? binpath
|
7
|
+
Kernel.system "ln -s #{File.expand_path(__FILE__ + "/../../../bin/#{file}")} #{binpath}"
|
8
|
+
end
|
9
|
+
|
10
|
+
File.chmod((File.stat(binpath).mode | 0755), binpath)
|
11
|
+
end
|
12
|
+
|
13
|
+
# make the gem readable by anyone (workaround systems with messed up permission masks)
|
14
|
+
def openup(path)
|
15
|
+
if File.file?(path)
|
16
|
+
File.chmod((File.stat(path).mode | 0755), path)
|
17
|
+
return
|
18
|
+
end
|
19
|
+
|
20
|
+
Dir.foreach(path) do |entry|
|
21
|
+
next if ['.', '..'].include? entry
|
22
|
+
openup File.join(path, entry)
|
23
|
+
end
|
6
24
|
end
|
25
|
+
base_path = File.expand_path(__FILE__ + "/../../../")
|
26
|
+
openup(base_path)
|
27
|
+
|
7
28
|
# we really shouldn't be abusing rubygems' root; then again, the Debian maintaines shouldn't be
|
8
29
|
# abusing the patience of Ruby developers
|
9
30
|
|
data/lib/pwnage/app/config.rb
CHANGED
@@ -47,7 +47,7 @@ class RailsPwnage::App::Config
|
|
47
47
|
app_db[:enable_db_reset] ||= false
|
48
48
|
|
49
49
|
# the number of cores on the platform
|
50
|
-
app_db[:detected_cores] ||= cpu_cores.
|
50
|
+
app_db[:detected_cores] ||= cpu_cores.length
|
51
51
|
end
|
52
52
|
|
53
53
|
# allocates room for the application and creates the application configuration database
|
data/lib/pwnage/app/main.rb
CHANGED
@@ -18,9 +18,11 @@ module RailsPwnage::App
|
|
18
18
|
app_name = app_name[0, app_name.rindex('.')] if app_name.rindex '.'
|
19
19
|
instance_magic(app_name, instance_name) do |app, instance|
|
20
20
|
Config.new.alloc app, instance
|
21
|
-
|
22
|
-
|
23
|
-
|
21
|
+
|
22
|
+
success = nil
|
23
|
+
[Git, Perforce, Svn].each do |vcs|
|
24
|
+
success = vcs.new.checkout remote_path, app, instance
|
25
|
+
break unless success == :next
|
24
26
|
end
|
25
27
|
if success == :ok
|
26
28
|
[Config, Files, Gems, Database, ClusterConfig, NginxConfig, Scripts].each do |mod|
|
@@ -28,7 +30,7 @@ module RailsPwnage::App
|
|
28
30
|
end
|
29
31
|
else
|
30
32
|
if success == :next
|
31
|
-
print "rails_pwange only supports git and
|
33
|
+
print "rails_pwange only supports git, subversion, and perforce at this time. \n"
|
32
34
|
else
|
33
35
|
print "You didn't checkout a Rails application. Check your remote path.\n"
|
34
36
|
end
|
@@ -44,7 +46,7 @@ module RailsPwnage::App
|
|
44
46
|
def self.update(app_name, instance_name)
|
45
47
|
instance_magic(app_name, instance_name) do |app, instance|
|
46
48
|
update_app app, instance do
|
47
|
-
[Git, Svn, Config, Gems, Database, Scripts].each do |mod|
|
49
|
+
[Git, Perforce, Svn, Config, Gems, Database, Scripts].each do |mod|
|
48
50
|
mod.new.update app, instance
|
49
51
|
end
|
50
52
|
end
|
@@ -59,7 +61,7 @@ module RailsPwnage::App
|
|
59
61
|
ClusterConfig.new.stop app, instance
|
60
62
|
Scripts.new.post_stop app, instance
|
61
63
|
|
62
|
-
[NginxConfig, ClusterConfig, Database, Files, Config].each do |mod|
|
64
|
+
[NginxConfig, ClusterConfig, Database, Perforce, Files, Config].each do |mod|
|
63
65
|
mod.new.remove app, instance
|
64
66
|
end
|
65
67
|
end
|
@@ -0,0 +1,169 @@
|
|
1
|
+
# checks out and updates the application from a Perforce repository
|
2
|
+
|
3
|
+
require 'English'
|
4
|
+
require 'fileutils'
|
5
|
+
require 'pathname'
|
6
|
+
require 'set'
|
7
|
+
|
8
|
+
class RailsPwnage::App::Perforce
|
9
|
+
include RailsPwnage::Base
|
10
|
+
|
11
|
+
# TODO(costan): figure out how to remove unused files in perforce and do it
|
12
|
+
|
13
|
+
# remove any files not in client workspace
|
14
|
+
def cleanup_app_dir(app_name, instance_name, target_dir, app_name_is_dir = false)
|
15
|
+
path_base = app_name_is_dir ? app_name : RailsPwnage::Config[app_name, instance_name][:app_path]
|
16
|
+
path_base = File.join path_base, target_dir
|
17
|
+
path_base = path_base[0...-1] if path_base[-1] == '/'
|
18
|
+
Dir.chdir path_base do
|
19
|
+
# get a listing of the files in that directory under version control
|
20
|
+
p4_output = `p4 have ...`
|
21
|
+
|
22
|
+
# if p4 have failed, we don't have a reliable list, so we must give up
|
23
|
+
break if $CHILD_STATUS.exitstatus != 0
|
24
|
+
|
25
|
+
client_files = Set.new
|
26
|
+
p4_output.each_line do |output_line|
|
27
|
+
next unless i = output_line.index(path_base)
|
28
|
+
client_files << output_line[(i + path_base.length + 1)..-1].strip
|
29
|
+
end
|
30
|
+
|
31
|
+
local_files = Dir.glob('**/*')
|
32
|
+
local_files.each do |file|
|
33
|
+
next if client_files.include? file
|
34
|
+
next unless File.file? file
|
35
|
+
|
36
|
+
FileUtils.rm_r file
|
37
|
+
end
|
38
|
+
end
|
39
|
+
end
|
40
|
+
|
41
|
+
# clean up the application directory by removing caches
|
42
|
+
def cleanup_app_caches(app_name, instance_name, app_name_is_dir = false)
|
43
|
+
# TODO: this is almost-duplicated in git.rb -- pull up somewhere
|
44
|
+
app_path = app_name_is_dir ? app_name : RailsPwnage::Config[app_name, instance_name][:app_path]
|
45
|
+
return unless File.exists?(File.join(app_path, '.p4clientspec'))
|
46
|
+
|
47
|
+
# TODO: learn how Rails caches work and kill those too
|
48
|
+
['app', 'lib', 'public/images',
|
49
|
+
'public/javascripts', 'public/stylesheets', 'script',
|
50
|
+
'test', 'tmp', 'vendor'
|
51
|
+
].each { |dir| cleanup_app_dir app_name, instance_name, dir, app_name_is_dir }
|
52
|
+
end
|
53
|
+
|
54
|
+
def perforce_config_file
|
55
|
+
ENV['P4CONFIG'] = '.p4config' unless ENV['P4CONFIG']
|
56
|
+
return ENV['P4CONFIG']
|
57
|
+
end
|
58
|
+
|
59
|
+
# Asks the user for their passwords and sets it, if that's worth it.
|
60
|
+
# Assumes the current directory is the application's directory.
|
61
|
+
def try_prompting_for_perforce_password
|
62
|
+
return false if ENV["P4PASSWD"]
|
63
|
+
|
64
|
+
p4_config = File.read perforce_config_file
|
65
|
+
return false if p4_config.index "P4PASSWD="
|
66
|
+
|
67
|
+
p4_password = prompt_user_for_password('Please enter your Perforce password:', 'Cannot securely obtain your Perforce password')
|
68
|
+
return false unless p4_password
|
69
|
+
ENV['P4PASSWD'] = p4_password
|
70
|
+
return true
|
71
|
+
end
|
72
|
+
|
73
|
+
def perforce_update(app_name, instance_name)
|
74
|
+
Dir.chdir RailsPwnage::Config[app_name, instance_name][:app_path] do
|
75
|
+
perforce_config_file
|
76
|
+
|
77
|
+
print "Doing Perforce sync...\n"
|
78
|
+
success = Kernel.system 'p4 sync'
|
79
|
+
if !success
|
80
|
+
Kernel.system 'p4 sync' if try_prompting_for_perforce_password
|
81
|
+
end
|
82
|
+
end
|
83
|
+
end
|
84
|
+
|
85
|
+
def checkout(remote_path, app_name, instance_name)
|
86
|
+
app_path = RailsPwnage::Config[app_name, instance_name][:app_path]
|
87
|
+
|
88
|
+
# paths look like p4://user@depot:port/path/to/application
|
89
|
+
path_regexp = /^p4\:\/\/([^\@\/]*\@)?([^\:\/]*)(:[1-9]+)?\/(.*)$/
|
90
|
+
path_match = path_regexp.match remote_path
|
91
|
+
return :next unless path_match
|
92
|
+
|
93
|
+
# extract path components
|
94
|
+
p4_user = path_match[1] ? path_match[1][0...-1] : current_user
|
95
|
+
p4_user, p4_password = *p4_user.split(':', 2)
|
96
|
+
p4_server = path_match[2]
|
97
|
+
p4_port = path_match[3] ? path_match[3][1..-1].to_i : 1666
|
98
|
+
p4_path = path_match[4]
|
99
|
+
p4_client = "rpwn-#{p4_user}-#{app_name}-#{instance_name}"
|
100
|
+
|
101
|
+
# create settings file
|
102
|
+
p4_config_file =
|
103
|
+
File.open(File.join(app_path, perforce_config_file), 'w') do |f|
|
104
|
+
f.write <<END_SETTINGS
|
105
|
+
P4PORT=#{p4_server}:#{p4_port}
|
106
|
+
P4USER=#{p4_user}
|
107
|
+
P4CLIENT=#{p4_client}
|
108
|
+
END_SETTINGS
|
109
|
+
f.write "P4PASSWD=#{p4_password}\n" if p4_password
|
110
|
+
end
|
111
|
+
|
112
|
+
# create client spec
|
113
|
+
File.open(File.join(app_path, '.p4clientspec'), 'w') do |f|
|
114
|
+
f.write <<END_SETTINGS
|
115
|
+
Client: #{p4_client}
|
116
|
+
Owner: #{p4_user}
|
117
|
+
Description: Deployment client for #{app_name} instance #{instance_name} created by rails_pwnerer
|
118
|
+
Root: #{app_path}
|
119
|
+
Options: noallwrite clobber unlocked nomodtime rmdir
|
120
|
+
SubmitOptions: revertunchanged
|
121
|
+
LineEnd: share
|
122
|
+
View:
|
123
|
+
//depot/#{p4_path}/... //#{p4_client}/...
|
124
|
+
END_SETTINGS
|
125
|
+
end
|
126
|
+
|
127
|
+
print "Creaing Perforce client...\n"
|
128
|
+
Dir.chdir RailsPwnage::Config[app_name, instance_name][:app_path] do
|
129
|
+
success = Kernel.system "p4 client -i < .p4clientspec"
|
130
|
+
if !success
|
131
|
+
Kernel.system "p4 client -i < .p4clientspec" if try_prompting_for_perforce_password
|
132
|
+
end
|
133
|
+
|
134
|
+
print "Doing Perforce sync...\n"
|
135
|
+
Kernel.system 'p4 sync -f'
|
136
|
+
end
|
137
|
+
|
138
|
+
# check that we really checked out a Rails app
|
139
|
+
return check_rails_root(app_path) ? :ok : false
|
140
|
+
end
|
141
|
+
|
142
|
+
def update(app_name, instance_name)
|
143
|
+
app_path = RailsPwnage::Config[app_name, instance_name][:app_path]
|
144
|
+
return unless File.exists?(File.join(app_path, '.p4clientspec'))
|
145
|
+
|
146
|
+
# TODO: maybe backup old version before issuing the p4 sync?
|
147
|
+
|
148
|
+
perforce_update app_name, instance_name
|
149
|
+
cleanup_app_caches app_name, instance_name
|
150
|
+
end
|
151
|
+
|
152
|
+
def remove(app_name, instance_name)
|
153
|
+
app_path = RailsPwnage::Config[app_name, instance_name][:app_path]
|
154
|
+
return unless File.exists?(File.join(app_path, '.p4clientspec'))
|
155
|
+
|
156
|
+
|
157
|
+
print "Deleting Perforce client...\n"
|
158
|
+
Dir.chdir RailsPwnage::Config[app_name, instance_name][:app_path] do
|
159
|
+
p4_config = File.read perforce_config_file
|
160
|
+
client_match = /^P4CLIENT=(.*)$/.match p4_config
|
161
|
+
p4_client = client_match[1]
|
162
|
+
|
163
|
+
success = Kernel.system "p4 client -d #{p4_client}"
|
164
|
+
if !success
|
165
|
+
Kernel.system "p4 client -d #{p4_client}" if try_prompting_for_perforce_password
|
166
|
+
end
|
167
|
+
end
|
168
|
+
end
|
169
|
+
end
|
@@ -0,0 +1,19 @@
|
|
1
|
+
# extends Base with the ability to get input from the user
|
2
|
+
|
3
|
+
begin
|
4
|
+
require 'rubygems'
|
5
|
+
require 'highline'
|
6
|
+
rescue
|
7
|
+
# no highline... tough luck
|
8
|
+
end
|
9
|
+
|
10
|
+
module RailsPwnage::Base
|
11
|
+
def prompt_user_for_password(prompt, fail_prompt)
|
12
|
+
unless defined?(HighLine)
|
13
|
+
print "#{fail_prompt}\n"
|
14
|
+
return nil
|
15
|
+
end
|
16
|
+
|
17
|
+
HighLine.new.ask(prompt) { |question| question.echo = '' }
|
18
|
+
end
|
19
|
+
end
|
data/lib/pwnage/dev_executor.rb
CHANGED
@@ -26,6 +26,32 @@ class RailsPwnage::DevExecutor
|
|
26
26
|
|
27
27
|
File.open(file, 'w') { |f| YAML.dump config, f }
|
28
28
|
end
|
29
|
+
|
30
|
+
def checkin_rails_app(checkin_command, path_base)
|
31
|
+
is_empty = true
|
32
|
+
|
33
|
+
Dir.foreach(path_base) do |entry|
|
34
|
+
# skip uninteresting entries
|
35
|
+
next if ['.', '..'].include? entry
|
36
|
+
|
37
|
+
# check in files and subdirectories
|
38
|
+
is_empty = false
|
39
|
+
path = File.join path_base, entry
|
40
|
+
if File.file? path
|
41
|
+
Kernel.system "#{checkin_command} add #{path}"
|
42
|
+
has_files = true
|
43
|
+
else
|
44
|
+
checkin_rails_app checkin_command, path
|
45
|
+
end
|
46
|
+
end
|
47
|
+
|
48
|
+
if is_empty
|
49
|
+
# workaround to check in blank directory
|
50
|
+
path = File.join path_base, '.not_blank'
|
51
|
+
File.open(path, 'w') { |f| f.write '' }
|
52
|
+
Kernel.system "#{checkin_command} add #{path}"
|
53
|
+
end
|
54
|
+
end
|
29
55
|
|
30
56
|
|
31
57
|
# standalone runner
|
@@ -66,6 +92,13 @@ class RailsPwnage::DevExecutor
|
|
66
92
|
config.delete property
|
67
93
|
write_config config, instance
|
68
94
|
|
95
|
+
when 'checkin'
|
96
|
+
unless args[1]
|
97
|
+
print "Please provide the checkin command (e.g. git).\n"
|
98
|
+
exit
|
99
|
+
end
|
100
|
+
checkin_rails_app args[1], '.'
|
101
|
+
|
69
102
|
else
|
70
103
|
print "Unrecognized command #{args[0]}\n"
|
71
104
|
end
|
@@ -18,7 +18,7 @@ class RailsPwnage::Scaffolds::Config
|
|
18
18
|
# the default instance name
|
19
19
|
host_info[:instance] = Socket.gethostname()
|
20
20
|
# the computer's name (if we ever do status reports)
|
21
|
-
host_info[:name] = Socket.gethostname()
|
21
|
+
host_info[:name] = Socket.gethostname().split('.').first
|
22
22
|
# username for creating / dropping databases
|
23
23
|
host_info[:dbroot_name] = 'root'
|
24
24
|
# password for creating / dropping databases
|
@@ -23,8 +23,11 @@ class RailsPwnage::Scaffolds::Gems
|
|
23
23
|
# used to determine the number of available CPUs and cores
|
24
24
|
install_gems %w(sys-cpu)
|
25
25
|
|
26
|
+
# used to get version control passwords
|
27
|
+
install_gems %w(highline termios)
|
28
|
+
|
26
29
|
# useful for building gems and debugging
|
27
|
-
install_gems %w(
|
30
|
+
install_gems %w(echoe)
|
28
31
|
end
|
29
32
|
|
30
33
|
# runner
|
data/lib/rails_pwnerer.rb
CHANGED
@@ -17,6 +17,7 @@ require 'pwnage/base/cpus.rb'
|
|
17
17
|
require 'pwnage/base/dirs.rb'
|
18
18
|
require 'pwnage/base/gems.rb'
|
19
19
|
require 'pwnage/base/hostname.rb'
|
20
|
+
require 'pwnage/base/input.rb'
|
20
21
|
require 'pwnage/base/packages.rb'
|
21
22
|
require 'pwnage/base/process.rb'
|
22
23
|
require 'pwnage/base/rails.rb'
|
@@ -51,6 +52,7 @@ require 'pwnage/app/files.rb'
|
|
51
52
|
require 'pwnage/app/gems.rb'
|
52
53
|
require 'pwnage/app/git.rb'
|
53
54
|
require 'pwnage/app/nginx_config.rb'
|
55
|
+
require 'pwnage/app/perforce.rb'
|
54
56
|
require 'pwnage/app/scripts.rb'
|
55
57
|
require 'pwnage/app/svn.rb'
|
56
58
|
|
data/rails_pwnerer.gemspec
CHANGED
@@ -2,18 +2,18 @@
|
|
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.29"
|
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"]
|
9
|
-
s.date = %q{2009-01-
|
9
|
+
s.date = %q{2009-01-27}
|
10
10
|
s.default_executable = %q{bin/rpwn}
|
11
11
|
s.description = %q{Rails deployment tool/hack.}
|
12
12
|
s.email = %q{victor@costan.us}
|
13
|
-
s.executables = ["rpwn", "
|
13
|
+
s.executables = ["rpwn", "rpwndev", "rpwnctl"]
|
14
14
|
s.extensions = ["ext/rpwn_setup_notice/extconf.rb"]
|
15
|
-
s.extra_rdoc_files = ["bin/rpwn", "bin/
|
16
|
-
s.files = ["bin/rpwn", "bin/
|
15
|
+
s.extra_rdoc_files = ["README", "ext/rpwn_setup_notice/extconf.rb", "LICENSE", "bin/rpwn", "bin/rpwndev", "bin/rpwnctl", "CHANGELOG", "lib/rails_pwnerer.rb", "lib/pwnage/util/kill_process_set.rb", "lib/pwnage/util/main.rb", "lib/pwnage/executor.rb", "lib/pwnage/scaffolds/hook_dyndns.rb", "lib/pwnage/scaffolds/gems.rb", "lib/pwnage/scaffolds/dir_permissions.rb", "lib/pwnage/scaffolds/dirs.rb", "lib/pwnage/scaffolds/config.rb", "lib/pwnage/scaffolds/mysql_config.rb", "lib/pwnage/scaffolds/packages.rb", "lib/pwnage/scaffolds/sshd.rb", "lib/pwnage/scaffolds/rubygems.rb", "lib/pwnage/scaffolds/hook_daemon.rb", "lib/pwnage/config/main.rb", "lib/pwnage/config/repository.rb", "lib/pwnage/config/frontends.rb", "lib/pwnage/config/ports.rb", "lib/pwnage/config/app.rb", "lib/pwnage/config/paths.rb", "lib/pwnage/ctl_executor.rb", "lib/pwnage/base.rb", "lib/pwnage/dev_executor.rb", "lib/pwnage/app/gems.rb", "lib/pwnage/app/nginx_config.rb", "lib/pwnage/app/main.rb", "lib/pwnage/app/scripts.rb", "lib/pwnage/app/svn.rb", "lib/pwnage/app/perforce.rb", "lib/pwnage/app/database.rb", "lib/pwnage/app/config.rb", "lib/pwnage/app/git.rb", "lib/pwnage/app/cluster_config.rb", "lib/pwnage/app/files.rb", "lib/pwnage/base/hostname.rb", "lib/pwnage/base/gems.rb", "lib/pwnage/base/input.rb", "lib/pwnage/base/cpus.rb", "lib/pwnage/base/atomics.rb", "lib/pwnage/base/dirs.rb", "lib/pwnage/base/rails.rb", "lib/pwnage/base/packages.rb", "lib/pwnage/base/process.rb", "lib/pwnage/base/startup.rb"]
|
16
|
+
s.files = ["README", "ext/rpwn_setup_notice/extconf.rb", "LICENSE", "RUBYFORGE", "Rakefile", "Manifest", "bin/rpwn", "bin/rpwndev", "bin/rpwnctl", "CHANGELOG", "lib/rails_pwnerer.rb", "lib/pwnage/util/kill_process_set.rb", "lib/pwnage/util/main.rb", "lib/pwnage/executor.rb", "lib/pwnage/scaffolds/hook_dyndns.rb", "lib/pwnage/scaffolds/gems.rb", "lib/pwnage/scaffolds/dir_permissions.rb", "lib/pwnage/scaffolds/dirs.rb", "lib/pwnage/scaffolds/config.rb", "lib/pwnage/scaffolds/mysql_config.rb", "lib/pwnage/scaffolds/packages.rb", "lib/pwnage/scaffolds/sshd.rb", "lib/pwnage/scaffolds/rubygems.rb", "lib/pwnage/scaffolds/hook_daemon.rb", "lib/pwnage/config/main.rb", "lib/pwnage/config/repository.rb", "lib/pwnage/config/frontends.rb", "lib/pwnage/config/ports.rb", "lib/pwnage/config/app.rb", "lib/pwnage/config/paths.rb", "lib/pwnage/ctl_executor.rb", "lib/pwnage/base.rb", "lib/pwnage/dev_executor.rb", "lib/pwnage/app/gems.rb", "lib/pwnage/app/nginx_config.rb", "lib/pwnage/app/main.rb", "lib/pwnage/app/scripts.rb", "lib/pwnage/app/svn.rb", "lib/pwnage/app/perforce.rb", "lib/pwnage/app/database.rb", "lib/pwnage/app/config.rb", "lib/pwnage/app/git.rb", "lib/pwnage/app/cluster_config.rb", "lib/pwnage/app/files.rb", "lib/pwnage/base/hostname.rb", "lib/pwnage/base/gems.rb", "lib/pwnage/base/input.rb", "lib/pwnage/base/cpus.rb", "lib/pwnage/base/atomics.rb", "lib/pwnage/base/dirs.rb", "lib/pwnage/base/rails.rb", "lib/pwnage/base/packages.rb", "lib/pwnage/base/process.rb", "lib/pwnage/base/startup.rb", "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.29
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Victor Costan
|
@@ -9,7 +9,7 @@ autorequire:
|
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
11
|
|
12
|
-
date: 2009-01-
|
12
|
+
date: 2009-01-27 00:00:00 -05:00
|
13
13
|
default_executable: bin/rpwn
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
@@ -26,113 +26,117 @@ description: Rails deployment tool/hack.
|
|
26
26
|
email: victor@costan.us
|
27
27
|
executables:
|
28
28
|
- rpwn
|
29
|
-
- rpwnctl
|
30
29
|
- rpwndev
|
30
|
+
- rpwnctl
|
31
31
|
extensions:
|
32
32
|
- ext/rpwn_setup_notice/extconf.rb
|
33
33
|
extra_rdoc_files:
|
34
|
+
- README
|
35
|
+
- ext/rpwn_setup_notice/extconf.rb
|
36
|
+
- LICENSE
|
34
37
|
- bin/rpwn
|
35
|
-
- bin/rpwnctl
|
36
38
|
- bin/rpwndev
|
39
|
+
- bin/rpwnctl
|
37
40
|
- CHANGELOG
|
38
|
-
-
|
39
|
-
- lib/pwnage/
|
40
|
-
- lib/pwnage/
|
41
|
-
- lib/pwnage/
|
42
|
-
- lib/pwnage/
|
41
|
+
- lib/rails_pwnerer.rb
|
42
|
+
- lib/pwnage/util/kill_process_set.rb
|
43
|
+
- lib/pwnage/util/main.rb
|
44
|
+
- lib/pwnage/executor.rb
|
45
|
+
- lib/pwnage/scaffolds/hook_dyndns.rb
|
46
|
+
- lib/pwnage/scaffolds/gems.rb
|
47
|
+
- lib/pwnage/scaffolds/dir_permissions.rb
|
48
|
+
- lib/pwnage/scaffolds/dirs.rb
|
49
|
+
- lib/pwnage/scaffolds/config.rb
|
50
|
+
- lib/pwnage/scaffolds/mysql_config.rb
|
51
|
+
- lib/pwnage/scaffolds/packages.rb
|
52
|
+
- lib/pwnage/scaffolds/sshd.rb
|
53
|
+
- lib/pwnage/scaffolds/rubygems.rb
|
54
|
+
- lib/pwnage/scaffolds/hook_daemon.rb
|
55
|
+
- lib/pwnage/config/main.rb
|
56
|
+
- lib/pwnage/config/repository.rb
|
57
|
+
- lib/pwnage/config/frontends.rb
|
58
|
+
- lib/pwnage/config/ports.rb
|
59
|
+
- lib/pwnage/config/app.rb
|
60
|
+
- lib/pwnage/config/paths.rb
|
61
|
+
- lib/pwnage/ctl_executor.rb
|
62
|
+
- lib/pwnage/base.rb
|
63
|
+
- lib/pwnage/dev_executor.rb
|
43
64
|
- lib/pwnage/app/gems.rb
|
44
|
-
- lib/pwnage/app/git.rb
|
45
|
-
- lib/pwnage/app/main.rb
|
46
65
|
- lib/pwnage/app/nginx_config.rb
|
66
|
+
- lib/pwnage/app/main.rb
|
47
67
|
- lib/pwnage/app/scripts.rb
|
48
68
|
- lib/pwnage/app/svn.rb
|
49
|
-
- lib/pwnage/
|
69
|
+
- lib/pwnage/app/perforce.rb
|
70
|
+
- lib/pwnage/app/database.rb
|
71
|
+
- lib/pwnage/app/config.rb
|
72
|
+
- lib/pwnage/app/git.rb
|
73
|
+
- lib/pwnage/app/cluster_config.rb
|
74
|
+
- lib/pwnage/app/files.rb
|
75
|
+
- lib/pwnage/base/hostname.rb
|
76
|
+
- lib/pwnage/base/gems.rb
|
77
|
+
- lib/pwnage/base/input.rb
|
50
78
|
- lib/pwnage/base/cpus.rb
|
79
|
+
- lib/pwnage/base/atomics.rb
|
51
80
|
- lib/pwnage/base/dirs.rb
|
52
|
-
- lib/pwnage/base/
|
53
|
-
- lib/pwnage/base/hostname.rb
|
81
|
+
- lib/pwnage/base/rails.rb
|
54
82
|
- lib/pwnage/base/packages.rb
|
55
83
|
- lib/pwnage/base/process.rb
|
56
|
-
- lib/pwnage/base/rails.rb
|
57
84
|
- lib/pwnage/base/startup.rb
|
58
|
-
|
59
|
-
-
|
60
|
-
-
|
61
|
-
-
|
62
|
-
-
|
63
|
-
-
|
64
|
-
-
|
65
|
-
-
|
66
|
-
-
|
85
|
+
files:
|
86
|
+
- README
|
87
|
+
- ext/rpwn_setup_notice/extconf.rb
|
88
|
+
- LICENSE
|
89
|
+
- RUBYFORGE
|
90
|
+
- Rakefile
|
91
|
+
- Manifest
|
92
|
+
- bin/rpwn
|
93
|
+
- bin/rpwndev
|
94
|
+
- bin/rpwnctl
|
95
|
+
- CHANGELOG
|
96
|
+
- lib/rails_pwnerer.rb
|
97
|
+
- lib/pwnage/util/kill_process_set.rb
|
98
|
+
- lib/pwnage/util/main.rb
|
67
99
|
- lib/pwnage/executor.rb
|
68
|
-
- lib/pwnage/scaffolds/
|
100
|
+
- lib/pwnage/scaffolds/hook_dyndns.rb
|
101
|
+
- lib/pwnage/scaffolds/gems.rb
|
69
102
|
- lib/pwnage/scaffolds/dir_permissions.rb
|
70
103
|
- lib/pwnage/scaffolds/dirs.rb
|
71
|
-
- lib/pwnage/scaffolds/
|
72
|
-
- lib/pwnage/scaffolds/hook_daemon.rb
|
73
|
-
- lib/pwnage/scaffolds/hook_dyndns.rb
|
104
|
+
- lib/pwnage/scaffolds/config.rb
|
74
105
|
- lib/pwnage/scaffolds/mysql_config.rb
|
75
106
|
- lib/pwnage/scaffolds/packages.rb
|
76
|
-
- lib/pwnage/scaffolds/rubygems.rb
|
77
107
|
- lib/pwnage/scaffolds/sshd.rb
|
78
|
-
- lib/pwnage/
|
79
|
-
- lib/pwnage/
|
80
|
-
- lib/
|
81
|
-
-
|
82
|
-
-
|
83
|
-
|
84
|
-
-
|
85
|
-
-
|
86
|
-
-
|
87
|
-
-
|
88
|
-
-
|
89
|
-
- lib/pwnage/app/cluster_config.rb
|
90
|
-
- lib/pwnage/app/config.rb
|
91
|
-
- lib/pwnage/app/database.rb
|
92
|
-
- lib/pwnage/app/files.rb
|
108
|
+
- lib/pwnage/scaffolds/rubygems.rb
|
109
|
+
- lib/pwnage/scaffolds/hook_daemon.rb
|
110
|
+
- lib/pwnage/config/main.rb
|
111
|
+
- lib/pwnage/config/repository.rb
|
112
|
+
- lib/pwnage/config/frontends.rb
|
113
|
+
- lib/pwnage/config/ports.rb
|
114
|
+
- lib/pwnage/config/app.rb
|
115
|
+
- lib/pwnage/config/paths.rb
|
116
|
+
- lib/pwnage/ctl_executor.rb
|
117
|
+
- lib/pwnage/base.rb
|
118
|
+
- lib/pwnage/dev_executor.rb
|
93
119
|
- lib/pwnage/app/gems.rb
|
94
|
-
- lib/pwnage/app/git.rb
|
95
|
-
- lib/pwnage/app/main.rb
|
96
120
|
- lib/pwnage/app/nginx_config.rb
|
121
|
+
- lib/pwnage/app/main.rb
|
97
122
|
- lib/pwnage/app/scripts.rb
|
98
123
|
- lib/pwnage/app/svn.rb
|
99
|
-
- lib/pwnage/
|
124
|
+
- lib/pwnage/app/perforce.rb
|
125
|
+
- lib/pwnage/app/database.rb
|
126
|
+
- lib/pwnage/app/config.rb
|
127
|
+
- lib/pwnage/app/git.rb
|
128
|
+
- lib/pwnage/app/cluster_config.rb
|
129
|
+
- lib/pwnage/app/files.rb
|
130
|
+
- lib/pwnage/base/hostname.rb
|
131
|
+
- lib/pwnage/base/gems.rb
|
132
|
+
- lib/pwnage/base/input.rb
|
100
133
|
- lib/pwnage/base/cpus.rb
|
134
|
+
- lib/pwnage/base/atomics.rb
|
101
135
|
- lib/pwnage/base/dirs.rb
|
102
|
-
- lib/pwnage/base/
|
103
|
-
- lib/pwnage/base/hostname.rb
|
136
|
+
- lib/pwnage/base/rails.rb
|
104
137
|
- lib/pwnage/base/packages.rb
|
105
138
|
- lib/pwnage/base/process.rb
|
106
|
-
- lib/pwnage/base/rails.rb
|
107
139
|
- lib/pwnage/base/startup.rb
|
108
|
-
- lib/pwnage/base.rb
|
109
|
-
- lib/pwnage/config/app.rb
|
110
|
-
- lib/pwnage/config/frontends.rb
|
111
|
-
- lib/pwnage/config/main.rb
|
112
|
-
- lib/pwnage/config/paths.rb
|
113
|
-
- lib/pwnage/config/ports.rb
|
114
|
-
- lib/pwnage/config/repository.rb
|
115
|
-
- lib/pwnage/ctl_executor.rb
|
116
|
-
- lib/pwnage/dev_executor.rb
|
117
|
-
- lib/pwnage/executor.rb
|
118
|
-
- lib/pwnage/scaffolds/config.rb
|
119
|
-
- lib/pwnage/scaffolds/dir_permissions.rb
|
120
|
-
- lib/pwnage/scaffolds/dirs.rb
|
121
|
-
- lib/pwnage/scaffolds/gems.rb
|
122
|
-
- lib/pwnage/scaffolds/hook_daemon.rb
|
123
|
-
- lib/pwnage/scaffolds/hook_dyndns.rb
|
124
|
-
- lib/pwnage/scaffolds/mysql_config.rb
|
125
|
-
- lib/pwnage/scaffolds/packages.rb
|
126
|
-
- lib/pwnage/scaffolds/rubygems.rb
|
127
|
-
- lib/pwnage/scaffolds/sshd.rb
|
128
|
-
- lib/pwnage/util/kill_process_set.rb
|
129
|
-
- lib/pwnage/util/main.rb
|
130
|
-
- lib/rails_pwnerer.rb
|
131
|
-
- LICENSE
|
132
|
-
- Manifest
|
133
|
-
- Rakefile
|
134
|
-
- README
|
135
|
-
- RUBYFORGE
|
136
140
|
- rails_pwnerer.gemspec
|
137
141
|
has_rdoc: true
|
138
142
|
homepage: http://www.costan.us/rails_pwnage
|