rails_pwnerer 0.4.15 → 0.4.16
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 +1 -0
- data/lib/pwnage/executor.rb +3 -0
- data/lib/pwnage/scaffolds/rubygems.rb +58 -0
- data/lib/rails_pwnage.rb +1 -0
- data/rails_pwnerer.gemspec +4 -4
- metadata +3 -1
data/CHANGELOG
CHANGED
data/Manifest
CHANGED
data/lib/pwnage/executor.rb
CHANGED
@@ -8,6 +8,8 @@ class RailsPwnage::Executor
|
|
8
8
|
case args[1]
|
9
9
|
when 'dirs'
|
10
10
|
Dirs.go
|
11
|
+
when 'rubygems'
|
12
|
+
RubyGems.go
|
11
13
|
when 'gems'
|
12
14
|
Gems.go
|
13
15
|
when 'packages'
|
@@ -24,6 +26,7 @@ class RailsPwnage::Executor
|
|
24
26
|
end
|
25
27
|
else
|
26
28
|
Packages.go
|
29
|
+
RubyGems.go
|
27
30
|
Gems.go
|
28
31
|
Dirs.go
|
29
32
|
MysqlConfig.go
|
@@ -0,0 +1,58 @@
|
|
1
|
+
require 'net/http'
|
2
|
+
require 'pp'
|
3
|
+
|
4
|
+
class RailsPwnage::Scaffolds::RubyGems
|
5
|
+
include RailsPwnage::Base
|
6
|
+
|
7
|
+
# retrieves the URI for a Google "I'm Feeling Lucky" search
|
8
|
+
def google_lucky_uri(query)
|
9
|
+
uri = URI.parse "http://www.google.com/search?q=#{URI.escape query}&btnI=Lucky"
|
10
|
+
response = Net::HTTP.start(uri.host, uri.port) { |http| http.get "#{uri.path}?#{uri.query}" }
|
11
|
+
response.header['location']
|
12
|
+
end
|
13
|
+
|
14
|
+
# retrieves the download URI for a RubyForge project
|
15
|
+
def rubyforge_download_uri(project, gem_name = project, extension = ".gem")
|
16
|
+
frs_uri = URI.parse google_lucky_uri("rubyforge project #{project} download")
|
17
|
+
frs_contents = Net::HTTP.get frs_uri
|
18
|
+
frs_links = frs_contents.scan(/\<a.+href=\"(.+?)\"\>/).flatten.
|
19
|
+
select { |link| link.index('.tgz') && link.index("#{gem_name}-") }
|
20
|
+
latest_link = frs_links.sort_by { |n| n.match(/#{gem_name}-(.*)\.#{extension}/)[1] }.last
|
21
|
+
return frs_uri.merge(latest_link)
|
22
|
+
end
|
23
|
+
|
24
|
+
# installs Rubygems on the system
|
25
|
+
def install_rubygems
|
26
|
+
with_temp_dir(:root => true) do
|
27
|
+
tgz_uri = rubyforge_download_uri('rubygems', 'rubygems', 'tgz')
|
28
|
+
file_name = File.basename tgz_uri.path
|
29
|
+
loop do
|
30
|
+
request_path = tgz_uri.query.to_s.empty? ? tgz_uri.path : "#{tgz_uri.path}?#{tgz_uri.query}"
|
31
|
+
response = Net::HTTP.start(tgz_uri.host, tgz_uri.port) { |http| http.get request_path }
|
32
|
+
if response.kind_of? Net::HTTPRedirection
|
33
|
+
tgz_uri = URI.parse response.header['location']
|
34
|
+
next
|
35
|
+
end
|
36
|
+
File.open(file_name, 'wb') { |f| f.write response.body }
|
37
|
+
break
|
38
|
+
end
|
39
|
+
|
40
|
+
system "tar -xzf #{file_name}"
|
41
|
+
File.unlink file_name
|
42
|
+
Dir.chdir(Dir.glob('*').first) do
|
43
|
+
system "ruby setup.rb"
|
44
|
+
end
|
45
|
+
end
|
46
|
+
end
|
47
|
+
|
48
|
+
def run
|
49
|
+
# remove the (retarded) Debian gems package and install from source
|
50
|
+
remove_packages %w(rubygems)
|
51
|
+
install_rubygems
|
52
|
+
end
|
53
|
+
|
54
|
+
# standalone runner
|
55
|
+
def self.go
|
56
|
+
self.new.run
|
57
|
+
end
|
58
|
+
end
|
data/lib/rails_pwnage.rb
CHANGED
@@ -20,6 +20,7 @@ require 'pwnage/scaffolds/hook_mongrels.rb'
|
|
20
20
|
require 'pwnage/scaffolds/hook_dyndns.rb'
|
21
21
|
require 'pwnage/scaffolds/mysql_config.rb'
|
22
22
|
require 'pwnage/scaffolds/packages.rb'
|
23
|
+
require 'pwnage/scaffolds/rubygems.rb'
|
23
24
|
|
24
25
|
require 'pwnage/app/main.rb'
|
25
26
|
require 'pwnage/app/svn.rb'
|
data/rails_pwnerer.gemspec
CHANGED
@@ -1,10 +1,10 @@
|
|
1
1
|
|
2
|
-
# Gem::Specification for Rails_pwnerer-0.4.
|
2
|
+
# Gem::Specification for Rails_pwnerer-0.4.16
|
3
3
|
# Originally generated by Echoe
|
4
4
|
|
5
5
|
Gem::Specification.new do |s|
|
6
6
|
s.name = %q{rails_pwnerer}
|
7
|
-
s.version = "0.4.
|
7
|
+
s.version = "0.4.16"
|
8
8
|
|
9
9
|
s.specification_version = 2 if s.respond_to? :specification_version=
|
10
10
|
|
@@ -15,8 +15,8 @@ Gem::Specification.new do |s|
|
|
15
15
|
s.description = %q{Rails deployment tool/hack.}
|
16
16
|
s.email = %q{victor@costan.us}
|
17
17
|
s.executables = ["rpwn"]
|
18
|
-
s.extra_rdoc_files = ["bin/rpwn", "CHANGELOG", "lib/pwnage/app/cluster_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/svn.rb", "lib/pwnage/base/dirs.rb", "lib/pwnage/base/gems.rb", "lib/pwnage/base/packages.rb", "lib/pwnage/base/startup.rb", "lib/pwnage/base.rb", "lib/pwnage/config/main.rb", "lib/pwnage/executor.rb", "lib/pwnage/scaffolds/dirs.rb", "lib/pwnage/scaffolds/gems.rb", "lib/pwnage/scaffolds/hook_dyndns.rb", "lib/pwnage/scaffolds/hook_mongrels.rb", "lib/pwnage/scaffolds/mysql_config.rb", "lib/pwnage/scaffolds/packages.rb", "lib/rails_pwnage.rb", "LICENSE", "README"]
|
19
|
-
s.files = ["bin/rpwn", "CHANGELOG", "lib/pwnage/app/cluster_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/svn.rb", "lib/pwnage/base/dirs.rb", "lib/pwnage/base/gems.rb", "lib/pwnage/base/packages.rb", "lib/pwnage/base/startup.rb", "lib/pwnage/base.rb", "lib/pwnage/config/main.rb", "lib/pwnage/executor.rb", "lib/pwnage/scaffolds/dirs.rb", "lib/pwnage/scaffolds/gems.rb", "lib/pwnage/scaffolds/hook_dyndns.rb", "lib/pwnage/scaffolds/hook_mongrels.rb", "lib/pwnage/scaffolds/mysql_config.rb", "lib/pwnage/scaffolds/packages.rb", "lib/rails_pwnage.rb", "LICENSE", "Manifest", "README", "RUBYFORGE", "rails_pwnerer.gemspec"]
|
18
|
+
s.extra_rdoc_files = ["bin/rpwn", "CHANGELOG", "lib/pwnage/app/cluster_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/svn.rb", "lib/pwnage/base/dirs.rb", "lib/pwnage/base/gems.rb", "lib/pwnage/base/packages.rb", "lib/pwnage/base/startup.rb", "lib/pwnage/base.rb", "lib/pwnage/config/main.rb", "lib/pwnage/executor.rb", "lib/pwnage/scaffolds/dirs.rb", "lib/pwnage/scaffolds/gems.rb", "lib/pwnage/scaffolds/hook_dyndns.rb", "lib/pwnage/scaffolds/hook_mongrels.rb", "lib/pwnage/scaffolds/mysql_config.rb", "lib/pwnage/scaffolds/packages.rb", "lib/pwnage/scaffolds/rubygems.rb", "lib/rails_pwnage.rb", "LICENSE", "README"]
|
19
|
+
s.files = ["bin/rpwn", "CHANGELOG", "lib/pwnage/app/cluster_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/svn.rb", "lib/pwnage/base/dirs.rb", "lib/pwnage/base/gems.rb", "lib/pwnage/base/packages.rb", "lib/pwnage/base/startup.rb", "lib/pwnage/base.rb", "lib/pwnage/config/main.rb", "lib/pwnage/executor.rb", "lib/pwnage/scaffolds/dirs.rb", "lib/pwnage/scaffolds/gems.rb", "lib/pwnage/scaffolds/hook_dyndns.rb", "lib/pwnage/scaffolds/hook_mongrels.rb", "lib/pwnage/scaffolds/mysql_config.rb", "lib/pwnage/scaffolds/packages.rb", "lib/pwnage/scaffolds/rubygems.rb", "lib/rails_pwnage.rb", "LICENSE", "Manifest", "README", "RUBYFORGE", "rails_pwnerer.gemspec"]
|
20
20
|
s.has_rdoc = true
|
21
21
|
s.homepage = %q{http://www.costan.us/rails_pwnage}
|
22
22
|
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.4.
|
4
|
+
version: 0.4.16
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Victor Costan
|
@@ -41,6 +41,7 @@ extra_rdoc_files:
|
|
41
41
|
- lib/pwnage/scaffolds/hook_mongrels.rb
|
42
42
|
- lib/pwnage/scaffolds/mysql_config.rb
|
43
43
|
- lib/pwnage/scaffolds/packages.rb
|
44
|
+
- lib/pwnage/scaffolds/rubygems.rb
|
44
45
|
- lib/rails_pwnage.rb
|
45
46
|
- LICENSE
|
46
47
|
- README
|
@@ -66,6 +67,7 @@ files:
|
|
66
67
|
- lib/pwnage/scaffolds/hook_mongrels.rb
|
67
68
|
- lib/pwnage/scaffolds/mysql_config.rb
|
68
69
|
- lib/pwnage/scaffolds/packages.rb
|
70
|
+
- lib/pwnage/scaffolds/rubygems.rb
|
69
71
|
- lib/rails_pwnage.rb
|
70
72
|
- LICENSE
|
71
73
|
- Manifest
|