rails_pwnerer 0.7.6 → 0.7.7

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: e0f91e3ad61cb19dd6f961d89b72682317f1fff0
4
+ data.tar.gz: 4efc0bd59642eefa8829f55a74780d5c91f0a6d3
5
+ SHA512:
6
+ metadata.gz: a09169d7fd3559d8016de54a219e5ce59f76736fdf7c135889554d50beea868b8f37e376f5d017aa35e9a914017aa95aeb1b28142edd6e6c10562656f106273a
7
+ data.tar.gz: d27dfc145b3348be934f52810bed79c53114026c3027c84e69e3ec63a5aaeda067cb3f68d2b7672f805cf401a78941b63a3c546304f9e51ed4218a00189fa3e7
data/CHANGELOG CHANGED
@@ -1,3 +1,5 @@
1
+ v0.7.7. Remove support for Ruby 1.8 and hacks for old distributions.
2
+
1
3
  v0.7.6. nginx configuration fix for redirections on non-standard ports.
2
4
 
3
5
  v0.7.5. One more nginx configuration adjustment.
data/Manifest CHANGED
@@ -6,7 +6,6 @@ Rakefile
6
6
  bin/rpwn
7
7
  bin/rpwnctl
8
8
  bin/rpwndev
9
- ext/rpwn_setup_notice/extconf.rb
10
9
  lib/rails_pwnerer.rb
11
10
  lib/rails_pwnerer/app/assets.rb
12
11
  lib/rails_pwnerer/app/cluster_config.rb
data/README CHANGED
@@ -6,7 +6,7 @@ much rather having ruby do that for me.
6
6
 
7
7
  Right now, +rails_pwnerer+ assumes a fresh Ubuntu 8.04 installation. You're
8
8
  welcome to test/update for other systems, and I'll be happy to merge patches,
9
- or add you to the RubyForge project.
9
+ or add you to the RubyForge project.
10
10
 
11
11
 
12
12
  Life without +rails_pwnerer+:
@@ -16,7 +16,7 @@ ready for production. You'll be frustrated in the process, but feel
16
16
  accomplished at the end. Assuming you don't do something wrong.
17
17
 
18
18
  Read a couple more 20-page guides, and learn to push newer versions
19
- of your application. You'll become lazy, and take shortcuts, like having
19
+ of your application. You'll become lazy, and take shortcuts, like having
20
20
  production passwords in the repository, or insecure file permissions, or
21
21
  you'll forget to delete cached javascripts and stylesheets from public/.
22
22
  I won't even mention backups. Or scripts to recover your frontends
@@ -26,7 +26,7 @@ application.
26
26
  Life with +rails_pwnerer+:
27
27
 
28
28
  1) Install a bootstrap version of ruby and rubygems:
29
- sudo apt-get -y install ruby1.9.1 make
29
+ sudo apt-get -y install ruby
30
30
 
31
31
  2) Install +rails_pwnerer+:
32
32
  sudo gem install rails_pwnerer
@@ -54,7 +54,7 @@ sudo rpwn install you@your.repository.host/path/to/your_application.git
54
54
  or
55
55
 
56
56
  sudo rpwn install p4://you:yourpass@host:port/path/to/your/application
57
-
57
+
58
58
  5) Maintain your application
59
59
 
60
60
  * Push the updates in the SVN repository:
@@ -76,7 +76,7 @@ rpwn console your_application
76
76
  rpwn db_console your_application
77
77
 
78
78
  * Configure DynDns for your application server
79
- sudo rpwn scaffold ddns full_host_name ddns_user ddns_password
79
+ sudo rpwn scaffold ddns full_host_name ddns_user ddns_password
80
80
 
81
81
  * Change the database password
82
82
  sudp rpwn rekey your_application
@@ -151,7 +151,7 @@ SSL servers with +rails_pwnerer+:
151
151
  1) Generate a server key:
152
152
  openssl req -new -newkey rsa:2048 -keyout config/rails_pwnerer/instance.pem -out instance.csr -nodes
153
153
 
154
- 2) Be sure to set the CN (Common Name) to your server's DNS address. Send the
154
+ 2) Be sure to set the CN (Common Name) to your server's DNS address. Send the
155
155
  CSR file to your CA: cat instance.csr
156
156
 
157
157
  3) Copy the certificate into the +rails_pwnerer+ configuration directory:
@@ -183,14 +183,14 @@ The following prefixes are searched for in script/rails_pwnerer:
183
183
  The first script matching the pattern is executed. This means you can
184
184
  have an "install.rb", so you can use your favorite language extension.
185
185
  You cannot have both an "install.rb" and an "install.sh" executing at
186
- the same time.
186
+ the same time.
187
187
 
188
188
  If the script ends in _su or _su.extension (e.g. _su.ruby), it will be
189
189
  run as the super-user (root). Otherwise it will be run as the
190
190
  application's user. For instance, post_reset_su.rb wil be run as the
191
- super-user, whereas post_reset.sh will not.
191
+ super-user, whereas post_reset.sh will not.
192
192
 
193
193
  Writing your lifecycle scripts in Ruby? You can use the +rails_pwnerer+
194
194
  gem to commonly-used chunks of functionality . RailsPwnage::Util
195
195
  (including RailsPwnage::Base) is likely to be useful.
196
-
196
+
data/Rakefile CHANGED
@@ -3,23 +3,19 @@ require 'echoe'
3
3
 
4
4
  Echoe.new('rails_pwnerer') do |p|
5
5
  p.project = 'rails-pwnage' # rubyforge project
6
-
6
+
7
7
  p.author = 'Victor Costan'
8
8
  p.email = 'victor@costan.us'
9
9
  p.summary = 'Rails deployment hack.'
10
- p.url = 'http://www.costan.us/rails_pwnage'
11
- p.dependencies = []
10
+ p.url = 'http://github.com/pwnall/rails_pwnage'
11
+ p.licenses = ['MIT']
12
12
  p.development_dependencies = ['echoe', 'fakefs', 'flexmock']
13
13
  p.runtime_dependencies = ['zerg_support']
14
- p.extension_pattern = ['ext/**/extconf.rb']
15
- p.eval = proc do |p|
16
- p.default_executable = 'bin/rpwn'
17
- end
18
-
14
+
19
15
  p.need_tar_gz = !Gem.win_platform?
20
16
  p.need_zip = !Gem.win_platform?
21
17
  p.rdoc_pattern =
22
- /^(lib|bin|tasks|ext)|^BUILD|^README|^CHANGELOG|^TODO|^LICENSE|^COPYING$/
18
+ /^(lib|bin|tasks|ext)|^BUILD|^README|^CHANGELOG|^TODO|^LICENSE|^COPYING$/
23
19
  end
24
20
 
25
21
  if $0 == __FILE__
@@ -2,54 +2,54 @@
2
2
 
3
3
  class RailsPwnerer::Scaffolds::Packages
4
4
  include RailsPwnerer::Base
5
-
5
+
6
6
  # Packages needed to manage the server remotely and install applications.
7
7
  def install_management
8
8
  # Needed to play with the configuration database.
9
9
  package 'debconf'
10
10
  package 'debconf-utils'
11
-
11
+
12
12
  # Keys for Debian packages.
13
13
  package 'debian-archive-keyring'
14
-
14
+
15
15
  # Fetch files via HTTP.
16
16
  package 'curl'
17
17
  package 'wget'
18
-
18
+
19
19
  package 'dpkg-dev' # Builds packages from source.
20
20
  package 'openssh-server' # SSH into the box.
21
21
 
22
22
  # For gems with native extensions.
23
23
  package 'build-essential'
24
24
  package 'g++'
25
-
25
+
26
26
  # Pull code from version control.
27
- package 'subversion'
27
+ package 'subversion'
28
28
  package 'git-core'
29
29
 
30
30
  package 'avahi-daemon' # mDNS, a.k.a. Bonjour
31
31
  package 'ddclient' # dynamic DNS
32
32
  end
33
-
33
+
34
34
  # Packages needed by popular gems.
35
35
  def install_tools
36
36
  # For eventmachine.
37
37
  package 'libssl-dev'
38
-
38
+
39
39
  # For rmagick (image processing).
40
40
  package 'libmagickwand-dev', /^libmagick\d*-dev$/
41
-
41
+
42
42
  # For HTML/XML parsers (nokogiri, hpricot).
43
43
  package 'libxml2-dev'
44
44
  package 'libxslt1-dev'
45
-
45
+
46
46
  # For HTTP fetchers (curb).
47
47
  package 'libcurl-dev', 'libcurl-openssl-dev', /^libcurl\d*-dev$/,
48
48
  /^libcurl\d*-openssl-dev$/
49
-
49
+
50
50
  # needed for solr and other java-based services
51
51
  package /^openjdk-\d+-jdk/
52
-
52
+
53
53
  # useful to be able to work with compressed data
54
54
  package 'zlib-dev', /^zlib[0-9a-z]*-dev$/
55
55
  package 'bzip2'
@@ -57,78 +57,78 @@ class RailsPwnerer::Scaffolds::Packages
57
57
  package 'tar'
58
58
  package 'zip'
59
59
  end
60
-
60
+
61
61
  # Packages for all the database servers we could need.
62
62
  def install_databases
63
63
  package 'sqlite3'
64
64
  package 'libsqlite3-dev'
65
-
65
+
66
66
  package 'mysql-client'
67
67
  package 'mysql-server'
68
68
  package 'libmysql-dev', 'libmysqlclient-dev', /^libmysqlclient\d*-dev$/
69
-
69
+
70
70
  package 'postgresql-client'
71
71
  package 'libpq-dev'
72
-
72
+
73
73
  # TODO: NoSQL stores.
74
- end
75
-
74
+ end
75
+
76
76
  # The ruby environment (ruby, irb, rubygems).
77
77
  def install_ruby
78
- install_ruby_19 || install_ruby_18
78
+ # remove the bootstrap version of ruby to install the best available one.
79
+ remove_packages %w(ruby)
80
+ install_ruby_20 || install_ruby_19
79
81
  end
80
-
81
- # MRI19 (1.9.2 or above).
82
- def install_ruby_19(retry_with_repos = true)
83
- package = best_package_matching(['ruby1.9.1'])
84
- if !package or package[:version] < '1.9.2'
82
+
83
+ # MRI 2.0.
84
+ def install_ruby_20(retry_with_repos = true)
85
+ package = best_package_matching(['ruby2.0'])
86
+ if !package
85
87
  return false unless retry_with_repos
86
-
88
+
87
89
  # This distribution has an old ruby. Work around it.
88
90
  deb_source = 'http://debian.mirrors.tds.net/debian/'
89
91
  deb_repos = %w(testing main non-free contrib)
90
- return_value = nil
92
+ return_value = nil
91
93
  with_package_source deb_source, deb_repos do
92
- return_value = install_ruby_19 false
94
+ return_value = install_ruby_20 false
93
95
  end
94
96
  return return_value
95
97
  end
96
-
97
- package 'ruby1.9.1-full'
98
+ package 'ruby2.0', 'ruby2.0-dev'
98
99
  true
99
100
  end
100
-
101
- # MRI18 (1.8.7 or above).
102
- def install_ruby_18
103
- package = best_package_matching(['ruby1.8-full'])
104
- if !package or package[:version] < '1.8.7'
101
+
102
+ # MRI19 (1.9.2 or above).
103
+ def install_ruby_19(retry_with_repos = true)
104
+ package = best_package_matching(['ruby1.9.1'])
105
+ if !package or package[:version] < '1.9.2'
106
+ return false unless retry_with_repos
107
+
105
108
  # This distribution has an old ruby. Work around it.
106
109
  deb_source = 'http://debian.mirrors.tds.net/debian/'
107
110
  deb_repos = %w(testing main non-free contrib)
108
- return_value = nil
111
+ return_value = nil
109
112
  with_package_source deb_source, deb_repos do
110
- return_value = install_ruby
113
+ return_value = install_ruby_19 false
111
114
  end
112
115
  return return_value
113
116
  end
114
-
115
- package 'ruby1.8-full', 'ruby-full'
116
117
 
117
- # Ecosystem command-line tools.
118
- package 'rubygems', 'rubygems1.8'
118
+ package 'ruby1.9.1', 'ruby1.9.1-dev'
119
+ true
119
120
  end
120
-
121
+
121
122
  # Package for front-end servers.
122
123
  def install_frontends
123
124
  package 'nginx'
124
- package 'varnish'
125
125
  end
126
-
126
+
127
127
  # Implementation of the super-simple package DSL.
128
128
  def package(*patterns)
129
129
  install_package_matching patterns
130
130
  end
131
-
131
+
132
132
  # Runner.
133
133
  def run
134
134
  update_package_metadata
@@ -3,14 +3,14 @@ require 'net/http'
3
3
 
4
4
  class RailsPwnerer::Scaffolds::RubyGems
5
5
  include RailsPwnerer::Base
6
-
6
+
7
7
  # retrieves the URI for a Google "I'm Feeling Lucky" search
8
8
  def google_lucky_uri(query)
9
9
  uri = URI.parse "http://www.google.com/search?q=#{URI.escape query}&btnI=Lucky"
10
10
  response = Net::HTTP.start(uri.host, uri.port) { |http| http.get "#{uri.path}?#{uri.query}" }
11
11
  response.header['location']
12
12
  end
13
-
13
+
14
14
  # retrieves the download URI for a RubyForge project
15
15
  def rubyforge_download_uri(project, gem_name = project, extension = ".gem")
16
16
  frs_uri = URI.parse google_lucky_uri("#{project} download page")
@@ -20,10 +20,10 @@ class RailsPwnerer::Scaffolds::RubyGems
20
20
  latest_link = frs_links.sort_by { |n| n.match(/#{gem_name}-(.*)\.#{extension}/)[1] }.last
21
21
  return frs_uri.merge(latest_link)
22
22
  end
23
-
23
+
24
24
  # installs Rubygems on the system
25
25
  def install_rubygems
26
- with_temp_dir(:root => true) do
26
+ with_temp_dir(:root => true) do
27
27
  tgz_uri = rubyforge_download_uri('rubygems', 'rubygems', 'tgz')
28
28
  file_name = File.basename tgz_uri.path
29
29
  loop do
@@ -36,55 +36,52 @@ class RailsPwnerer::Scaffolds::RubyGems
36
36
  File.open(file_name, 'wb') { |f| f.write response.body }
37
37
  break
38
38
  end
39
-
40
- system "tar -xzf #{file_name}"
39
+
40
+ system "tar -xzf #{file_name}"
41
41
  File.unlink file_name
42
42
  Dir.chdir(Dir.glob('*').first) do
43
43
  system "ruby setup.rb"
44
44
  end
45
- end
45
+ end
46
46
  end
47
-
47
+
48
48
  # sets up good defaults for Rubygems
49
49
  def configure_rubygems
50
50
  File.open('/etc/gemrc', 'w') do |f|
51
51
  f.write "gem: --no-force --no-rdoc --no-ri --no-user-install --wrappers\n"
52
52
  end
53
53
  end
54
-
54
+
55
55
  def run
56
56
  # get the old path set by pre-go
57
57
  old_gems = @@old_gems
58
-
59
- # remove the (retarded) Debian gems package and install from source
58
+
59
+ # remove the Debian gems package and install from source
60
60
  remove_packages %w(rubygems)
61
61
  install_rubygems
62
-
62
+
63
63
  # configure rubygems so it doesn't waste time
64
64
  configure_rubygems
65
65
 
66
- # patch Ubuntu's broken rubygems installation
67
- Kernel.system "cp /usr/bin/gem1.8 /usr/bin/gem"
68
-
69
66
  # remove the gems that are trailing behind
70
67
  new_gems = File.dirname(File.dirname(path_to_gem('sources', '/lib/sources.rb')))
71
68
  return if new_gems == old_gems # don't wipe the new dir by mistake
72
- FileUtils.rm_r old_gems
69
+ FileUtils.rm_r old_gems
73
70
  end
74
-
71
+
75
72
  def preflight
76
73
  # save old lib path, in case we need to wipe it
77
74
  # we need to do this because setting up packages might wipe Ubuntu's gems
78
- @@old_gems = File.dirname(File.dirname(path_to_gem('sources', '/lib/sources.rb')))
75
+ @@old_gems = File.dirname(File.dirname(path_to_gem('sources', '/lib/sources.rb')))
79
76
  end
80
-
77
+
81
78
  # called before packages get installed
82
79
  def self.pre_go
83
80
  self.new.preflight
84
81
  end
85
-
82
+
86
83
  # standalone runner
87
84
  def self.go
88
85
  self.new.run
89
- end
86
+ end
90
87
  end
@@ -1,28 +1,29 @@
1
1
  # -*- encoding: utf-8 -*-
2
+ # stub: rails_pwnerer 0.7.7 ruby lib
2
3
 
3
4
  Gem::Specification.new do |s|
4
5
  s.name = "rails_pwnerer"
5
- s.version = "0.7.6"
6
+ s.version = "0.7.7"
6
7
 
7
8
  s.required_rubygems_version = Gem::Requirement.new(">= 1.2") if s.respond_to? :required_rubygems_version=
8
9
  s.authors = ["Victor Costan"]
9
- s.date = "2013-04-28"
10
+ s.date = "2013-12-31"
10
11
  s.description = "Rails deployment hack."
11
12
  s.email = "victor@costan.us"
12
13
  s.executables = ["rpwn", "rpwnctl", "rpwndev"]
13
- s.extensions = ["ext/rpwn_setup_notice/extconf.rb"]
14
- s.extra_rdoc_files = ["CHANGELOG", "LICENSE", "README", "bin/rpwn", "bin/rpwnctl", "bin/rpwndev", "ext/rpwn_setup_notice/extconf.rb", "lib/rails_pwnerer.rb", "lib/rails_pwnerer/app/assets.rb", "lib/rails_pwnerer/app/cluster_config.rb", "lib/rails_pwnerer/app/config.rb", "lib/rails_pwnerer/app/db/mysql.rb", "lib/rails_pwnerer/app/files.rb", "lib/rails_pwnerer/app/gems.rb", "lib/rails_pwnerer/app/main.rb", "lib/rails_pwnerer/app/nginx_config.rb", "lib/rails_pwnerer/app/scripts.rb", "lib/rails_pwnerer/app/vcs/git.rb", "lib/rails_pwnerer/app/vcs/perforce.rb", "lib/rails_pwnerer/app/vcs/svn.rb", "lib/rails_pwnerer/base.rb", "lib/rails_pwnerer/base/atomics.rb", "lib/rails_pwnerer/base/cpus.rb", "lib/rails_pwnerer/base/dirs.rb", "lib/rails_pwnerer/base/gems.rb", "lib/rails_pwnerer/base/hostname.rb", "lib/rails_pwnerer/base/input.rb", "lib/rails_pwnerer/base/packages.rb", "lib/rails_pwnerer/base/process.rb", "lib/rails_pwnerer/base/rails.rb", "lib/rails_pwnerer/base/startup.rb", "lib/rails_pwnerer/config/app.rb", "lib/rails_pwnerer/config/frontends.rb", "lib/rails_pwnerer/config/main.rb", "lib/rails_pwnerer/config/paths.rb", "lib/rails_pwnerer/config/ports.rb", "lib/rails_pwnerer/config/repository.rb", "lib/rails_pwnerer/ctl_executor.rb", "lib/rails_pwnerer/dev_executor.rb", "lib/rails_pwnerer/executor.rb", "lib/rails_pwnerer/scaffolds/config.rb", "lib/rails_pwnerer/scaffolds/dir_permissions.rb", "lib/rails_pwnerer/scaffolds/dirs.rb", "lib/rails_pwnerer/scaffolds/gems.rb", "lib/rails_pwnerer/scaffolds/hook_daemon.rb", "lib/rails_pwnerer/scaffolds/hook_dyndns.rb", "lib/rails_pwnerer/scaffolds/mysql_config.rb", "lib/rails_pwnerer/scaffolds/packages.rb", "lib/rails_pwnerer/scaffolds/rubygems.rb", "lib/rails_pwnerer/scaffolds/sshd.rb", "lib/rails_pwnerer/util/kill_process_set.rb", "lib/rails_pwnerer/util/main.rb"]
15
- s.files = ["CHANGELOG", "LICENSE", "Manifest", "README", "Rakefile", "bin/rpwn", "bin/rpwnctl", "bin/rpwndev", "ext/rpwn_setup_notice/extconf.rb", "lib/rails_pwnerer.rb", "lib/rails_pwnerer/app/assets.rb", "lib/rails_pwnerer/app/cluster_config.rb", "lib/rails_pwnerer/app/config.rb", "lib/rails_pwnerer/app/db/mysql.rb", "lib/rails_pwnerer/app/files.rb", "lib/rails_pwnerer/app/gems.rb", "lib/rails_pwnerer/app/main.rb", "lib/rails_pwnerer/app/nginx_config.rb", "lib/rails_pwnerer/app/scripts.rb", "lib/rails_pwnerer/app/vcs/git.rb", "lib/rails_pwnerer/app/vcs/perforce.rb", "lib/rails_pwnerer/app/vcs/svn.rb", "lib/rails_pwnerer/base.rb", "lib/rails_pwnerer/base/atomics.rb", "lib/rails_pwnerer/base/cpus.rb", "lib/rails_pwnerer/base/dirs.rb", "lib/rails_pwnerer/base/gems.rb", "lib/rails_pwnerer/base/hostname.rb", "lib/rails_pwnerer/base/input.rb", "lib/rails_pwnerer/base/packages.rb", "lib/rails_pwnerer/base/process.rb", "lib/rails_pwnerer/base/rails.rb", "lib/rails_pwnerer/base/startup.rb", "lib/rails_pwnerer/config/app.rb", "lib/rails_pwnerer/config/frontends.rb", "lib/rails_pwnerer/config/main.rb", "lib/rails_pwnerer/config/paths.rb", "lib/rails_pwnerer/config/ports.rb", "lib/rails_pwnerer/config/repository.rb", "lib/rails_pwnerer/ctl_executor.rb", "lib/rails_pwnerer/dev_executor.rb", "lib/rails_pwnerer/executor.rb", "lib/rails_pwnerer/scaffolds/config.rb", "lib/rails_pwnerer/scaffolds/dir_permissions.rb", "lib/rails_pwnerer/scaffolds/dirs.rb", "lib/rails_pwnerer/scaffolds/gems.rb", "lib/rails_pwnerer/scaffolds/hook_daemon.rb", "lib/rails_pwnerer/scaffolds/hook_dyndns.rb", "lib/rails_pwnerer/scaffolds/mysql_config.rb", "lib/rails_pwnerer/scaffolds/packages.rb", "lib/rails_pwnerer/scaffolds/rubygems.rb", "lib/rails_pwnerer/scaffolds/sshd.rb", "lib/rails_pwnerer/util/kill_process_set.rb", "lib/rails_pwnerer/util/main.rb", "test/base_package_test.rb", "test/helper.rb", "rails_pwnerer.gemspec"]
16
- s.homepage = "http://www.costan.us/rails_pwnage"
17
- s.rdoc_options = ["--line-numbers", "--inline-source", "--title", "Rails_pwnerer", "--main", "README"]
18
- s.require_paths = ["lib", "ext"]
14
+ s.extra_rdoc_files = ["CHANGELOG", "LICENSE", "README", "bin/rpwn", "bin/rpwnctl", "bin/rpwndev", "lib/rails_pwnerer.rb", "lib/rails_pwnerer/app/assets.rb", "lib/rails_pwnerer/app/cluster_config.rb", "lib/rails_pwnerer/app/config.rb", "lib/rails_pwnerer/app/db/mysql.rb", "lib/rails_pwnerer/app/files.rb", "lib/rails_pwnerer/app/gems.rb", "lib/rails_pwnerer/app/main.rb", "lib/rails_pwnerer/app/nginx_config.rb", "lib/rails_pwnerer/app/scripts.rb", "lib/rails_pwnerer/app/vcs/git.rb", "lib/rails_pwnerer/app/vcs/perforce.rb", "lib/rails_pwnerer/app/vcs/svn.rb", "lib/rails_pwnerer/base.rb", "lib/rails_pwnerer/base/atomics.rb", "lib/rails_pwnerer/base/cpus.rb", "lib/rails_pwnerer/base/dirs.rb", "lib/rails_pwnerer/base/gems.rb", "lib/rails_pwnerer/base/hostname.rb", "lib/rails_pwnerer/base/input.rb", "lib/rails_pwnerer/base/packages.rb", "lib/rails_pwnerer/base/process.rb", "lib/rails_pwnerer/base/rails.rb", "lib/rails_pwnerer/base/startup.rb", "lib/rails_pwnerer/config/app.rb", "lib/rails_pwnerer/config/frontends.rb", "lib/rails_pwnerer/config/main.rb", "lib/rails_pwnerer/config/paths.rb", "lib/rails_pwnerer/config/ports.rb", "lib/rails_pwnerer/config/repository.rb", "lib/rails_pwnerer/ctl_executor.rb", "lib/rails_pwnerer/dev_executor.rb", "lib/rails_pwnerer/executor.rb", "lib/rails_pwnerer/scaffolds/config.rb", "lib/rails_pwnerer/scaffolds/dir_permissions.rb", "lib/rails_pwnerer/scaffolds/dirs.rb", "lib/rails_pwnerer/scaffolds/gems.rb", "lib/rails_pwnerer/scaffolds/hook_daemon.rb", "lib/rails_pwnerer/scaffolds/hook_dyndns.rb", "lib/rails_pwnerer/scaffolds/mysql_config.rb", "lib/rails_pwnerer/scaffolds/packages.rb", "lib/rails_pwnerer/scaffolds/rubygems.rb", "lib/rails_pwnerer/scaffolds/sshd.rb", "lib/rails_pwnerer/util/kill_process_set.rb", "lib/rails_pwnerer/util/main.rb"]
15
+ s.files = ["CHANGELOG", "LICENSE", "Manifest", "README", "Rakefile", "bin/rpwn", "bin/rpwnctl", "bin/rpwndev", "lib/rails_pwnerer.rb", "lib/rails_pwnerer/app/assets.rb", "lib/rails_pwnerer/app/cluster_config.rb", "lib/rails_pwnerer/app/config.rb", "lib/rails_pwnerer/app/db/mysql.rb", "lib/rails_pwnerer/app/files.rb", "lib/rails_pwnerer/app/gems.rb", "lib/rails_pwnerer/app/main.rb", "lib/rails_pwnerer/app/nginx_config.rb", "lib/rails_pwnerer/app/scripts.rb", "lib/rails_pwnerer/app/vcs/git.rb", "lib/rails_pwnerer/app/vcs/perforce.rb", "lib/rails_pwnerer/app/vcs/svn.rb", "lib/rails_pwnerer/base.rb", "lib/rails_pwnerer/base/atomics.rb", "lib/rails_pwnerer/base/cpus.rb", "lib/rails_pwnerer/base/dirs.rb", "lib/rails_pwnerer/base/gems.rb", "lib/rails_pwnerer/base/hostname.rb", "lib/rails_pwnerer/base/input.rb", "lib/rails_pwnerer/base/packages.rb", "lib/rails_pwnerer/base/process.rb", "lib/rails_pwnerer/base/rails.rb", "lib/rails_pwnerer/base/startup.rb", "lib/rails_pwnerer/config/app.rb", "lib/rails_pwnerer/config/frontends.rb", "lib/rails_pwnerer/config/main.rb", "lib/rails_pwnerer/config/paths.rb", "lib/rails_pwnerer/config/ports.rb", "lib/rails_pwnerer/config/repository.rb", "lib/rails_pwnerer/ctl_executor.rb", "lib/rails_pwnerer/dev_executor.rb", "lib/rails_pwnerer/executor.rb", "lib/rails_pwnerer/scaffolds/config.rb", "lib/rails_pwnerer/scaffolds/dir_permissions.rb", "lib/rails_pwnerer/scaffolds/dirs.rb", "lib/rails_pwnerer/scaffolds/gems.rb", "lib/rails_pwnerer/scaffolds/hook_daemon.rb", "lib/rails_pwnerer/scaffolds/hook_dyndns.rb", "lib/rails_pwnerer/scaffolds/mysql_config.rb", "lib/rails_pwnerer/scaffolds/packages.rb", "lib/rails_pwnerer/scaffolds/rubygems.rb", "lib/rails_pwnerer/scaffolds/sshd.rb", "lib/rails_pwnerer/util/kill_process_set.rb", "lib/rails_pwnerer/util/main.rb", "test/base_package_test.rb", "test/helper.rb", "rails_pwnerer.gemspec"]
16
+ s.homepage = "http://github.com/pwnall/rails_pwnage"
17
+ s.licenses = ["MIT"]
18
+ s.rdoc_options = ["--line-numbers", "--title", "Rails_pwnerer", "--main", "README"]
19
+ s.require_paths = ["lib"]
19
20
  s.rubyforge_project = "rails-pwnage"
20
- s.rubygems_version = "1.8.23"
21
+ s.rubygems_version = "2.1.11"
21
22
  s.summary = "Rails deployment hack."
22
23
  s.test_files = ["test/base_package_test.rb"]
23
24
 
24
25
  if s.respond_to? :specification_version then
25
- s.specification_version = 3
26
+ s.specification_version = 4
26
27
 
27
28
  if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
28
29
  s.add_runtime_dependency(%q<zerg_support>, [">= 0"])
metadata CHANGED
@@ -1,78 +1,69 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rails_pwnerer
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.7.6
5
- prerelease:
4
+ version: 0.7.7
6
5
  platform: ruby
7
6
  authors:
8
7
  - Victor Costan
9
8
  autorequire:
10
9
  bindir: bin
11
10
  cert_chain: []
12
- date: 2013-04-28 00:00:00.000000000 Z
11
+ date: 2013-12-31 00:00:00.000000000 Z
13
12
  dependencies:
14
13
  - !ruby/object:Gem::Dependency
15
14
  name: zerg_support
16
15
  requirement: !ruby/object:Gem::Requirement
17
- none: false
18
16
  requirements:
19
- - - ! '>='
17
+ - - ">="
20
18
  - !ruby/object:Gem::Version
21
19
  version: '0'
22
20
  type: :runtime
23
21
  prerelease: false
24
22
  version_requirements: !ruby/object:Gem::Requirement
25
- none: false
26
23
  requirements:
27
- - - ! '>='
24
+ - - ">="
28
25
  - !ruby/object:Gem::Version
29
26
  version: '0'
30
27
  - !ruby/object:Gem::Dependency
31
28
  name: echoe
32
29
  requirement: !ruby/object:Gem::Requirement
33
- none: false
34
30
  requirements:
35
- - - ! '>='
31
+ - - ">="
36
32
  - !ruby/object:Gem::Version
37
33
  version: '0'
38
34
  type: :development
39
35
  prerelease: false
40
36
  version_requirements: !ruby/object:Gem::Requirement
41
- none: false
42
37
  requirements:
43
- - - ! '>='
38
+ - - ">="
44
39
  - !ruby/object:Gem::Version
45
40
  version: '0'
46
41
  - !ruby/object:Gem::Dependency
47
42
  name: fakefs
48
43
  requirement: !ruby/object:Gem::Requirement
49
- none: false
50
44
  requirements:
51
- - - ! '>='
45
+ - - ">="
52
46
  - !ruby/object:Gem::Version
53
47
  version: '0'
54
48
  type: :development
55
49
  prerelease: false
56
50
  version_requirements: !ruby/object:Gem::Requirement
57
- none: false
58
51
  requirements:
59
- - - ! '>='
52
+ - - ">="
60
53
  - !ruby/object:Gem::Version
61
54
  version: '0'
62
55
  - !ruby/object:Gem::Dependency
63
56
  name: flexmock
64
57
  requirement: !ruby/object:Gem::Requirement
65
- none: false
66
58
  requirements:
67
- - - ! '>='
59
+ - - ">="
68
60
  - !ruby/object:Gem::Version
69
61
  version: '0'
70
62
  type: :development
71
63
  prerelease: false
72
64
  version_requirements: !ruby/object:Gem::Requirement
73
- none: false
74
65
  requirements:
75
- - - ! '>='
66
+ - - ">="
76
67
  - !ruby/object:Gem::Version
77
68
  version: '0'
78
69
  description: Rails deployment hack.
@@ -81,8 +72,7 @@ executables:
81
72
  - rpwn
82
73
  - rpwnctl
83
74
  - rpwndev
84
- extensions:
85
- - ext/rpwn_setup_notice/extconf.rb
75
+ extensions: []
86
76
  extra_rdoc_files:
87
77
  - CHANGELOG
88
78
  - LICENSE
@@ -90,7 +80,6 @@ extra_rdoc_files:
90
80
  - bin/rpwn
91
81
  - bin/rpwnctl
92
82
  - bin/rpwndev
93
- - ext/rpwn_setup_notice/extconf.rb
94
83
  - lib/rails_pwnerer.rb
95
84
  - lib/rails_pwnerer/app/assets.rb
96
85
  - lib/rails_pwnerer/app/cluster_config.rb
@@ -145,7 +134,6 @@ files:
145
134
  - bin/rpwn
146
135
  - bin/rpwnctl
147
136
  - bin/rpwndev
148
- - ext/rpwn_setup_notice/extconf.rb
149
137
  - lib/rails_pwnerer.rb
150
138
  - lib/rails_pwnerer/app/assets.rb
151
139
  - lib/rails_pwnerer/app/cluster_config.rb
@@ -194,36 +182,34 @@ files:
194
182
  - test/base_package_test.rb
195
183
  - test/helper.rb
196
184
  - rails_pwnerer.gemspec
197
- homepage: http://www.costan.us/rails_pwnage
198
- licenses: []
185
+ homepage: http://github.com/pwnall/rails_pwnage
186
+ licenses:
187
+ - MIT
188
+ metadata: {}
199
189
  post_install_message:
200
190
  rdoc_options:
201
- - --line-numbers
202
- - --inline-source
203
- - --title
191
+ - "--line-numbers"
192
+ - "--title"
204
193
  - Rails_pwnerer
205
- - --main
194
+ - "--main"
206
195
  - README
207
196
  require_paths:
208
197
  - lib
209
- - ext
210
198
  required_ruby_version: !ruby/object:Gem::Requirement
211
- none: false
212
199
  requirements:
213
- - - ! '>='
200
+ - - ">="
214
201
  - !ruby/object:Gem::Version
215
202
  version: '0'
216
203
  required_rubygems_version: !ruby/object:Gem::Requirement
217
- none: false
218
204
  requirements:
219
- - - ! '>='
205
+ - - ">="
220
206
  - !ruby/object:Gem::Version
221
207
  version: '1.2'
222
208
  requirements: []
223
209
  rubyforge_project: rails-pwnage
224
- rubygems_version: 1.8.23
210
+ rubygems_version: 2.1.11
225
211
  signing_key:
226
- specification_version: 3
212
+ specification_version: 4
227
213
  summary: Rails deployment hack.
228
214
  test_files:
229
215
  - test/base_package_test.rb
@@ -1,43 +0,0 @@
1
- # Invoked when the gem is installed. Hack to get a post-install hook.
2
-
3
- require 'rubygems'
4
-
5
-
6
- # Cheat to get the gem binaries installed in the user's path even on Debians.
7
- ['rpwn', 'rpwnctl', 'rpwndev'].each do |file|
8
- bin_path = "/usr/bin/#{file}"
9
- unless File.exists? bin_path
10
- source_path = File.expand_path "../../../bin/#{file}", __FILE__
11
- Kernel.system "ln -s #{source_path} #{bin_path}"
12
- end
13
-
14
- File.chmod((File.stat(binpath).mode | 0755), binpath) rescue nil
15
- end
16
-
17
- # Make the gem readable and runnable by anyone.
18
- #
19
- # This is a work-around for systems with messed up permission masks.
20
- def openup(path)
21
- if File.file?(path)
22
- File.chmod((File.stat(path).mode | 0755), path) rescue nil
23
- return
24
- end
25
-
26
- Dir.foreach(path) do |entry|
27
- next if ['.', '..'].include? entry
28
- openup File.join(path, entry)
29
- end
30
- end
31
- base_path = File.expand_path "../../..", __FILE__
32
- openup base_path
33
-
34
- # We really shouldn't be abusing rubygems' root. Then again, the Debian
35
- # maintainers shouldn't be abusing the patience of Ruby developers.
36
-
37
- # Now trick rubygems and echoe into believing that a gem got installed and
38
- # everything is good.
39
- ext_binary = 'rpwn_setup_notice' + (Gem.win_platform? ? '.dll' : '.so')
40
- File.open(ext_binary, 'w') { |f| }
41
- File.open('Makefile', 'w') do |f|
42
- f.write "# target_prefix = #{ext_binary}\nall:\n\ninstall:\n\n"
43
- end