capobvious 0.3.pre24 → 1.3.pre13
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/bin/capobvious +5 -5
- data/capobvious.gemspec +1 -1
- data/lib/capobvious/recipes/assets.rb +4 -4
- data/lib/capobvious/recipes/backup.rb +2 -19
- data/lib/capobvious/recipes/bundle.rb +1 -3
- data/lib/capobvious/recipes/db.rb +5 -7
- data/lib/capobvious/recipes/import.rb +8 -10
- data/lib/capobvious/recipes/logrotate.rb +2 -1
- data/lib/capobvious/recipes/main.rb +11 -39
- data/lib/capobvious/recipes/unicorn.rb +0 -1
- data/lib/capobvious/version.rb +1 -1
- metadata +25 -19
- checksums.yaml +0 -7
data/bin/capobvious
CHANGED
|
@@ -51,14 +51,14 @@ FILE
|
|
|
51
51
|
"config/deploy.rb" => <<FILE,
|
|
52
52
|
# -*- encoding : utf-8 -*-
|
|
53
53
|
set :ruby_version, '#{RUBY_VERSION}'
|
|
54
|
-
set :application,
|
|
54
|
+
set :application, "#{File.basename(Dir.getwd)}"
|
|
55
55
|
set :user, "USER_NAME_HERE"
|
|
56
56
|
set :serv, "IP_ADDRESS_HERE"
|
|
57
57
|
|
|
58
|
-
set :repository,
|
|
59
|
-
set :branch,
|
|
60
|
-
set :server_name,
|
|
61
|
-
set :server_redirect,
|
|
58
|
+
set :repository, "#{repository||'REPOSITORY_HERE'}"
|
|
59
|
+
set :branch, "master"
|
|
60
|
+
set :server_name, "EXAMPLE.com"
|
|
61
|
+
set :server_redirect, "WWW.EXAMPLE.COM"
|
|
62
62
|
|
|
63
63
|
set :backup_db, false
|
|
64
64
|
set :backup_sys, false
|
data/capobvious.gemspec
CHANGED
|
@@ -18,7 +18,7 @@ Gem::Specification.new do |s|
|
|
|
18
18
|
s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
|
|
19
19
|
s.require_paths = ["lib"]
|
|
20
20
|
|
|
21
|
-
s.add_dependency "capistrano"
|
|
21
|
+
s.add_dependency "capistrano"
|
|
22
22
|
s.add_dependency "rvm-capistrano"
|
|
23
23
|
|
|
24
24
|
# specify any dependencies here; for example:
|
|
@@ -15,10 +15,10 @@ Capistrano::Configuration.instance(:must_exist).load do
|
|
|
15
15
|
end
|
|
16
16
|
desc "Assets precompile"
|
|
17
17
|
task :precompile, :roles => :web, :except => { :no_release => true } do
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
18
|
+
if exists?(:turbo_sprockets_rails3) && fetch(:turbo_sprockets_rails3) && !previous_release.blank? && !latest_release.blank? && previous_release != latest_release
|
|
19
|
+
logger.info "Copying assets folder of previous release for turbo-sprockets-rails3 gem"
|
|
20
|
+
run("cp -r #{previous_release}/public/assets #{latest_release}/public/")
|
|
21
|
+
end
|
|
22
22
|
t1 = Time.now
|
|
23
23
|
run("cd #{latest_release} && bundle exec rake RAILS_ENV=#{rails_env} assets:precompile")
|
|
24
24
|
logger.info "assets:precompile took #{(Time.now-t1).to_i} seconds"
|
|
@@ -19,14 +19,7 @@ Capistrano::Configuration.instance(:must_exist).load do
|
|
|
19
19
|
if yml[:adapter] == "postgresql"
|
|
20
20
|
logger.info("Backup database #{yml[:database]}", "Backup:db")
|
|
21
21
|
command << "export PGPASSWORD=\"#{yml[:password]}\""
|
|
22
|
-
|
|
23
|
-
options['host'] = yml[:host] if yml[:host]
|
|
24
|
-
|
|
25
|
-
options_s = ""
|
|
26
|
-
options.each do |k,v|
|
|
27
|
-
options_s += "#{k} #{v}"
|
|
28
|
-
end
|
|
29
|
-
command << "pg_dump #{options_s} #{yml[:database]} | bzip2 -c | cat"
|
|
22
|
+
command << "pg_dump -U #{yml[:username]} #{yml[:database]} | bzip2 -c | cat"
|
|
30
23
|
else
|
|
31
24
|
puts "Cannot backup, adapter #{yml[:adapter]} is not implemented for backup yet"
|
|
32
25
|
end
|
|
@@ -67,17 +60,7 @@ Capistrano::Configuration.instance(:must_exist).load do
|
|
|
67
60
|
run "mkdir -p #{shared_path}/backup"
|
|
68
61
|
if yml[:adapter] == "postgresql"
|
|
69
62
|
logger.important("Backup database #{yml[:database]}", "Backup:db")
|
|
70
|
-
|
|
71
|
-
options = {'-U' => yml[:username]}
|
|
72
|
-
options['-h'] = yml[:host] if yml[:host]
|
|
73
|
-
options['-p'] = yml[:port] if yml[:port]
|
|
74
|
-
options_s = []
|
|
75
|
-
options.each do |k,v|
|
|
76
|
-
options_s << "#{k} #{v}"
|
|
77
|
-
end
|
|
78
|
-
options_s = options_s.join(' ')
|
|
79
|
-
|
|
80
|
-
run "export PGPASSWORD=\"#{yml[:password]}\" && pg_dump #{options_s} --no-owner #{yml[:database]} > #{dump_file_path}"
|
|
63
|
+
run "export PGPASSWORD=\"#{yml[:password]}\" && pg_dump -U #{yml[:username]} #{yml[:database]} > #{dump_file_path}"
|
|
81
64
|
run "cd #{shared_path}/backup && #{arch_create} #{output_file} #{file_name} && rm #{dump_file_path}"
|
|
82
65
|
else
|
|
83
66
|
puts "Cannot backup, adapter #{yml[:adapter]} is not implemented for backup yet"
|
|
@@ -3,11 +3,9 @@ Capistrano::Configuration.instance(:must_exist).load do
|
|
|
3
3
|
namespace :bundle do
|
|
4
4
|
desc "Run bundle install"
|
|
5
5
|
task :install do
|
|
6
|
-
opts = []
|
|
7
|
-
#opts << "-j#{fetch(:server_cores).to_i}" if fetch(:server_cores).to_i > 1
|
|
8
6
|
deployment = "--deployment --quiet"
|
|
9
7
|
without = ['development','test','production']-[rails_env]
|
|
10
|
-
run "cd #{latest_release} && bundle install
|
|
8
|
+
run "cd #{latest_release} && bundle install --without #{without.join(" ")}"
|
|
11
9
|
end
|
|
12
10
|
end
|
|
13
11
|
end
|
|
@@ -6,8 +6,6 @@ Capistrano::Configuration.instance(:must_exist).load do
|
|
|
6
6
|
config[(key.to_sym rescue key) || key] = config.delete(key)
|
|
7
7
|
end
|
|
8
8
|
config
|
|
9
|
-
rescue Errno::ENOENT
|
|
10
|
-
return nil
|
|
11
9
|
end
|
|
12
10
|
|
|
13
11
|
psql = "psql -h localhost"
|
|
@@ -56,11 +54,11 @@ Capistrano::Configuration.instance(:must_exist).load do
|
|
|
56
54
|
end
|
|
57
55
|
end
|
|
58
56
|
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
57
|
+
[:seed, :migrate].each do |t|
|
|
58
|
+
task t do
|
|
59
|
+
run "cd #{latest_release} && bundle exec rake RAILS_ENV=#{rails_env} db:#{t}"
|
|
60
|
+
end
|
|
61
|
+
end
|
|
64
62
|
|
|
65
63
|
task :reset do
|
|
66
64
|
run "cd #{latest_release} && bundle exec rake RAILS_ENV=#{rails_env} db:reset"
|
|
@@ -1,16 +1,14 @@
|
|
|
1
1
|
Capistrano::Configuration.instance(:must_exist).load do
|
|
2
2
|
|
|
3
3
|
namespace :import do
|
|
4
|
-
task :sys
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
end
|
|
13
|
-
break
|
|
4
|
+
task :sys do
|
|
5
|
+
#system "rm -rfv public/system/"
|
|
6
|
+
if which('rsync') && local_which('rsync')
|
|
7
|
+
logger.important('Importing with rsync', 'import:sys')
|
|
8
|
+
system "rsync -avz --rsh='ssh -p#{ssh_port}' #{user}@#{serv}:#{shared_path}/system public/"
|
|
9
|
+
else
|
|
10
|
+
backup.sys
|
|
11
|
+
system "cd public && #{arch_extract} ../#{local_folder_path}/#{sys_file_name}"
|
|
14
12
|
end
|
|
15
13
|
end
|
|
16
14
|
end
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
Capistrano::Configuration.instance(:must_exist).load do
|
|
2
|
-
|
|
2
|
+
after 'deploy:setup', 'logrotate:init'
|
|
3
|
+
|
|
3
4
|
_cset :logrotate_path, '/etc/logrotate.d'
|
|
4
5
|
_cset(:logrotate_file_name){ "cap_#{application}_#{rails_env}"}
|
|
5
6
|
_cset(:logrotate_file){ "#{logrotate_path}/#{logrotate_file_name}"}
|
|
@@ -1,7 +1,5 @@
|
|
|
1
1
|
Capistrano::Configuration.instance(:must_exist).load do
|
|
2
|
-
|
|
3
|
-
set :bundle_flags, '--system --quiet'
|
|
4
|
-
|
|
2
|
+
_cset(:ruby_version) { RUBY_VERSION }
|
|
5
3
|
_cset :rvm_type, :user
|
|
6
4
|
_cset :rails_env, 'production'
|
|
7
5
|
_cset :branch, 'master'
|
|
@@ -14,17 +12,11 @@ Capistrano::Configuration.instance(:must_exist).load do
|
|
|
14
12
|
_cset :database_yml_path, 'config/database.yml'
|
|
15
13
|
_cset :auto_migrate, true
|
|
16
14
|
_cset :assets, true
|
|
17
|
-
_cset :port, 22
|
|
18
|
-
_cset(:ssh) {"ssh -p #{fetch(:port)} #{user}@#{serv}"}
|
|
15
|
+
_cset(:ssh) {"ssh -p #{fetch(:port, 22)} #{user}@#{serv}"}
|
|
19
16
|
_cset(:stage){ rails_env }
|
|
20
17
|
_cset(:application_env){ "#{application}_#{rails_env}"}
|
|
21
|
-
_cset(:rvm_ruby_string){ "#{ruby_version}@#{application}" }
|
|
22
|
-
_cset :robots_disallow, false
|
|
23
|
-
|
|
24
|
-
before 'deploy', 'rvm:install_rvm' # install/update RVM
|
|
25
|
-
before 'deploy', 'rvm:install_ruby' # install Ruby and create gemset (both if missing)
|
|
26
18
|
|
|
27
|
-
|
|
19
|
+
after "deploy:update_code", "create:rvmrc"
|
|
28
20
|
after "deploy:update", "deploy:cleanup"
|
|
29
21
|
|
|
30
22
|
#set :deploy_to, (exists?(:deploy_folder)? fetch(:deploy_folder) : "/home/#{user}/www/#{application}")
|
|
@@ -32,15 +24,12 @@ Capistrano::Configuration.instance(:must_exist).load do
|
|
|
32
24
|
default_run_options[:pty] = true
|
|
33
25
|
ssh_options[:forward_agent] = true
|
|
34
26
|
|
|
27
|
+
|
|
35
28
|
def gem_use?(name)
|
|
36
29
|
gemfile_lock = File.read("Gemfile.lock")
|
|
37
30
|
return (gemfile_lock =~ /^\s*#{name}\s+\(/)? true : false
|
|
38
31
|
end
|
|
39
32
|
|
|
40
|
-
def current_host
|
|
41
|
-
capture("echo $CAPISTRANO:HOST$").strip
|
|
42
|
-
end
|
|
43
|
-
|
|
44
33
|
def which(name)
|
|
45
34
|
str = capture("which #{name}").chop
|
|
46
35
|
return false if str == ''
|
|
@@ -55,7 +44,9 @@ Capistrano::Configuration.instance(:must_exist).load do
|
|
|
55
44
|
rescue
|
|
56
45
|
false
|
|
57
46
|
end
|
|
58
|
-
|
|
47
|
+
def ssh_port
|
|
48
|
+
exists?(:port) ? fetch(:port) : 22
|
|
49
|
+
end
|
|
59
50
|
def local_gem_available?(name)
|
|
60
51
|
Gem::Specification.find_by_name(name)
|
|
61
52
|
rescue Gem::LoadError
|
|
@@ -88,17 +79,11 @@ Capistrano::Configuration.instance(:must_exist).load do
|
|
|
88
79
|
|
|
89
80
|
namespace :create do
|
|
90
81
|
desc "Create .rvmrc"
|
|
91
|
-
task :rvmrc
|
|
92
|
-
rvmrc_string = "rvm use #{
|
|
82
|
+
task :rvmrc do
|
|
83
|
+
rvmrc_string = "rvm use #{ruby_version}@#{application_env} --create"
|
|
93
84
|
logger.info rvmrc_string
|
|
94
85
|
put rvmrc_string, "#{latest_release}/.rvmrc"
|
|
95
86
|
end
|
|
96
|
-
|
|
97
|
-
desc "Create deny robots.txt"
|
|
98
|
-
task :robots, :roles => :web do
|
|
99
|
-
logger.important "CREATING DISALLOW robots.txt - do not forget to remove"
|
|
100
|
-
put "User-agent: *\nDisallow: /\n", "#{latest_release}/public/robots.txt"
|
|
101
|
-
end
|
|
102
87
|
end
|
|
103
88
|
|
|
104
89
|
|
|
@@ -114,9 +99,7 @@ Capistrano::Configuration.instance(:must_exist).load do
|
|
|
114
99
|
if exists?(:delayed_job) && fetch(:delayed_job) == true
|
|
115
100
|
delayed_job.restart
|
|
116
101
|
end
|
|
117
|
-
|
|
118
|
-
create.robots
|
|
119
|
-
end
|
|
102
|
+
|
|
120
103
|
|
|
121
104
|
end
|
|
122
105
|
task :prepare do
|
|
@@ -180,17 +163,6 @@ Capistrano::Configuration.instance(:must_exist).load do
|
|
|
180
163
|
|
|
181
164
|
|
|
182
165
|
namespace :install do
|
|
183
|
-
desc 'cap install:app APP=htop'
|
|
184
|
-
task :app do
|
|
185
|
-
#capture("which apt-nyaa").strip
|
|
186
|
-
|
|
187
|
-
if ENV.has_key?('APP')
|
|
188
|
-
run %{apt-nyaa cat #{ENV['APP']} | sed "s/sudo/#{sudo}/g" | bash}
|
|
189
|
-
else
|
|
190
|
-
logger.important "Please run with APP="
|
|
191
|
-
end
|
|
192
|
-
end
|
|
193
|
-
|
|
194
166
|
desc "Install apt-nyaa"
|
|
195
167
|
task :aptnyaa do
|
|
196
168
|
run "#{sudo} apt-get --assume-yes install wget > /dev/null 2>&1 && cd /usr/bin/ && #{sudo} wget -Nq https://raw.github.com/nyaa/UbuntuScript/master/apt-nyaa && #{sudo} chmod +x apt-nyaa"
|
|
@@ -206,7 +178,7 @@ Capistrano::Configuration.instance(:must_exist).load do
|
|
|
206
178
|
run "#{sudo} sysctl -w kernel.shmmax=#{bits}"
|
|
207
179
|
run "echo 'kernel.shmmax=#{bits}' | #{sudo} tee -a /etc/sysctl.conf"
|
|
208
180
|
else
|
|
209
|
-
|
|
181
|
+
puts "Please run with MAX="
|
|
210
182
|
end
|
|
211
183
|
end
|
|
212
184
|
end
|
|
@@ -21,7 +21,6 @@ Capistrano::Configuration.instance(:must_exist).load do
|
|
|
21
21
|
puts command
|
|
22
22
|
|
|
23
23
|
run "#{sudo} sed -i 's/exit 0//g' /etc/rc.local"
|
|
24
|
-
run "echo \"# #{application_env}\" | #{sudo} tee -a /etc/rc.local"
|
|
25
24
|
run "echo \"#{command}\" | #{sudo} tee -a /etc/rc.local"
|
|
26
25
|
run "echo \"exit 0\" | #{sudo} tee -a /etc/rc.local"
|
|
27
26
|
end
|
data/lib/capobvious/version.rb
CHANGED
metadata
CHANGED
|
@@ -1,43 +1,48 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: capobvious
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
|
|
4
|
+
prerelease: 4
|
|
5
|
+
version: 1.3.pre13
|
|
5
6
|
platform: ruby
|
|
6
7
|
authors:
|
|
7
8
|
- Dmitry Gruzd
|
|
8
9
|
autorequire:
|
|
9
10
|
bindir: bin
|
|
10
11
|
cert_chain: []
|
|
11
|
-
date: 2013-
|
|
12
|
+
date: 2013-05-30 00:00:00.000000000 Z
|
|
12
13
|
dependencies:
|
|
13
14
|
- !ruby/object:Gem::Dependency
|
|
14
15
|
name: capistrano
|
|
16
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
17
|
+
none: false
|
|
18
|
+
requirements:
|
|
19
|
+
- - ! '>='
|
|
20
|
+
- !ruby/object:Gem::Version
|
|
21
|
+
version: '0'
|
|
15
22
|
requirement: !ruby/object:Gem::Requirement
|
|
23
|
+
none: false
|
|
16
24
|
requirements:
|
|
17
|
-
- -
|
|
25
|
+
- - ! '>='
|
|
18
26
|
- !ruby/object:Gem::Version
|
|
19
|
-
version:
|
|
27
|
+
version: '0'
|
|
20
28
|
type: :runtime
|
|
21
29
|
prerelease: false
|
|
30
|
+
- !ruby/object:Gem::Dependency
|
|
31
|
+
name: rvm-capistrano
|
|
22
32
|
version_requirements: !ruby/object:Gem::Requirement
|
|
33
|
+
none: false
|
|
23
34
|
requirements:
|
|
24
|
-
- -
|
|
35
|
+
- - ! '>='
|
|
25
36
|
- !ruby/object:Gem::Version
|
|
26
|
-
version:
|
|
27
|
-
- !ruby/object:Gem::Dependency
|
|
28
|
-
name: rvm-capistrano
|
|
37
|
+
version: '0'
|
|
29
38
|
requirement: !ruby/object:Gem::Requirement
|
|
39
|
+
none: false
|
|
30
40
|
requirements:
|
|
31
|
-
- - '>='
|
|
41
|
+
- - ! '>='
|
|
32
42
|
- !ruby/object:Gem::Version
|
|
33
43
|
version: '0'
|
|
34
44
|
type: :runtime
|
|
35
45
|
prerelease: false
|
|
36
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
37
|
-
requirements:
|
|
38
|
-
- - '>='
|
|
39
|
-
- !ruby/object:Gem::Version
|
|
40
|
-
version: '0'
|
|
41
46
|
description: Capfile that we use every day
|
|
42
47
|
email:
|
|
43
48
|
- donotsendhere@gmail.com
|
|
@@ -70,25 +75,26 @@ files:
|
|
|
70
75
|
- lib/capobvious/version.rb
|
|
71
76
|
homepage: ''
|
|
72
77
|
licenses: []
|
|
73
|
-
metadata: {}
|
|
74
78
|
post_install_message:
|
|
75
79
|
rdoc_options: []
|
|
76
80
|
require_paths:
|
|
77
81
|
- lib
|
|
78
82
|
required_ruby_version: !ruby/object:Gem::Requirement
|
|
83
|
+
none: false
|
|
79
84
|
requirements:
|
|
80
|
-
- - '>='
|
|
85
|
+
- - ! '>='
|
|
81
86
|
- !ruby/object:Gem::Version
|
|
82
87
|
version: '0'
|
|
83
88
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
89
|
+
none: false
|
|
84
90
|
requirements:
|
|
85
|
-
- - '>'
|
|
91
|
+
- - ! '>'
|
|
86
92
|
- !ruby/object:Gem::Version
|
|
87
93
|
version: 1.3.1
|
|
88
94
|
requirements: []
|
|
89
95
|
rubyforge_project: capobvious
|
|
90
|
-
rubygems_version:
|
|
96
|
+
rubygems_version: 1.8.25
|
|
91
97
|
signing_key:
|
|
92
|
-
specification_version:
|
|
98
|
+
specification_version: 3
|
|
93
99
|
summary: Cap recipes
|
|
94
100
|
test_files: []
|
checksums.yaml
DELETED
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
SHA1:
|
|
3
|
-
metadata.gz: e5114a046ef025a47522a02f4203e2baaac5da4a
|
|
4
|
-
data.tar.gz: bd4fa13af1d9a4e0d77499c27aaffabaa3a10179
|
|
5
|
-
SHA512:
|
|
6
|
-
metadata.gz: 4257acf601d8a6b5e6d531b3a3fbf002018f1db9c1d62035ead2a7854741f3aaac8aadcb9c267af525a4209c39ad429f893e8515137c0a651f1e9d3da582a020
|
|
7
|
-
data.tar.gz: 2a6d8ebbb61dd6133a8a546579da4a362458f0206eb0d80f4f12006f2ade7e1ab05ff14ea98e11207a21d6f31b8c8e9cca8f40976096f79047f9a5bddf874272
|