capobvious 0.0.6 → 0.0.7
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 +87 -0
- data/capobvious.gemspec +4 -2
- data/lib/capistrano/ext/capobvious.rb +27 -7
- data/lib/capobvious/version.rb +3 -0
- metadata +19 -5
data/bin/capobvious
ADDED
@@ -0,0 +1,87 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
|
4
|
+
require 'optparse'
|
5
|
+
require 'fileutils'
|
6
|
+
|
7
|
+
OptionParser.new do |opts|
|
8
|
+
opts.banner = "Usage: #{File.basename($0)} [path]"
|
9
|
+
|
10
|
+
opts.on("-h", "--help", "Displays this help info") do
|
11
|
+
puts opts
|
12
|
+
exit 0
|
13
|
+
end
|
14
|
+
|
15
|
+
begin
|
16
|
+
opts.parse!(ARGV)
|
17
|
+
rescue OptionParser::ParseError => e
|
18
|
+
warn e.message
|
19
|
+
puts opts
|
20
|
+
exit 1
|
21
|
+
end
|
22
|
+
end
|
23
|
+
|
24
|
+
if ARGV.empty?
|
25
|
+
abort "Please specify the directory to capify, e.g. `#{File.basename($0)} .'"
|
26
|
+
elsif !File.exists?(ARGV.first)
|
27
|
+
abort "`#{ARGV.first}' does not exist."
|
28
|
+
elsif !File.directory?(ARGV.first)
|
29
|
+
abort "`#{ARGV.first}' is not a directory."
|
30
|
+
elsif ARGV.length > 1
|
31
|
+
abort "Too many arguments; please specify only the directory to capify."
|
32
|
+
end
|
33
|
+
|
34
|
+
def unindent(string)
|
35
|
+
indentation = string[/\A\s*/]
|
36
|
+
string.strip.gsub(/^#{indentation}/, "")
|
37
|
+
end
|
38
|
+
|
39
|
+
files = {
|
40
|
+
"Capfile" => <<FILE,
|
41
|
+
load 'deploy'
|
42
|
+
Dir['vendor/gems/*/recipes/*.rb','vendor/plugins/*/recipes/*.rb'].each { |plugin| load(plugin) }
|
43
|
+
load 'config/deploy' # remove this line to skip loading any of the default tasks
|
44
|
+
require 'capistrano/ext/capobvious'
|
45
|
+
FILE
|
46
|
+
|
47
|
+
"config/deploy.rb" => <<FILE
|
48
|
+
# -*- encoding : utf-8 -*-
|
49
|
+
set :rvm_ruby_string, '1.9.3'
|
50
|
+
set :application, "appname"
|
51
|
+
set :user, "USER_NAME_HERE"
|
52
|
+
set :serv, "IP_ADDRESS_HERE"
|
53
|
+
|
54
|
+
set :repository, "REPOSITORY_HERE"
|
55
|
+
set :server_name, "example.com"
|
56
|
+
set :server_redirect, "www.example.com"
|
57
|
+
|
58
|
+
set :assets, true
|
59
|
+
set :backup_db, false
|
60
|
+
set :backup_sys, false
|
61
|
+
set :auto_migrate, true
|
62
|
+
|
63
|
+
|
64
|
+
role :app, serv
|
65
|
+
role :web, serv
|
66
|
+
role :db, serv, :primary => true
|
67
|
+
FILE
|
68
|
+
}
|
69
|
+
|
70
|
+
base = ARGV.shift
|
71
|
+
files.each do |file, content|
|
72
|
+
file = File.join(base, file)
|
73
|
+
if File.exists?(file)
|
74
|
+
warn "[skip] '#{file}' already exists"
|
75
|
+
elsif File.exists?(file.downcase)
|
76
|
+
warn "[skip] '#{file.downcase}' exists, which could conflict with `#{file}'"
|
77
|
+
else
|
78
|
+
unless File.exists?(File.dirname(file))
|
79
|
+
puts "[add] making directory '#{File.dirname(file)}'"
|
80
|
+
FileUtils.mkdir(File.dirname(file))
|
81
|
+
end
|
82
|
+
puts "[add] writing '#{file}'"
|
83
|
+
File.open(file, "w") { |f| f.write(content) }
|
84
|
+
end
|
85
|
+
end
|
86
|
+
|
87
|
+
puts "[done] capified!"
|
data/capobvious.gemspec
CHANGED
@@ -1,10 +1,10 @@
|
|
1
1
|
# -*- encoding: utf-8 -*-
|
2
2
|
$:.push File.expand_path("../lib", __FILE__)
|
3
|
-
|
3
|
+
require "capobvious/version"
|
4
4
|
|
5
5
|
Gem::Specification.new do |s|
|
6
6
|
s.name = "capobvious"
|
7
|
-
s.version = VERSION
|
7
|
+
s.version = Capobvious::VERSION
|
8
8
|
s.authors = ["Dmitry Gruzd"]
|
9
9
|
s.email = ["donotsendhere@gmail.com"]
|
10
10
|
s.homepage = ""
|
@@ -18,6 +18,8 @@ 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"
|
22
|
+
|
21
23
|
# specify any dependencies here; for example:
|
22
24
|
# s.add_development_dependency "rspec"
|
23
25
|
# s.add_runtime_dependency "rest-client"
|
@@ -8,12 +8,14 @@ set :rvm_type, :user
|
|
8
8
|
default_run_options[:pty] = true
|
9
9
|
ssh_options[:forward_agent] = true
|
10
10
|
|
11
|
-
unless exists?(:rails_env)
|
12
|
-
|
13
|
-
|
14
|
-
unless exists?(:
|
15
|
-
|
16
|
-
|
11
|
+
set :rails_env, "production" unless exists?(:rails_env)
|
12
|
+
set :branch, "master" unless exists?(:branch)
|
13
|
+
set :dbconf, "database.yml" unless exists?(:dbconf)
|
14
|
+
set :deploy_to, "/home/#{user}/www/#{application}" unless exists?(:deploy_to)
|
15
|
+
set :deploy_via, :remote_cache unless exists?(:deploy_via)
|
16
|
+
set :keep_releases, 5 unless exists?(:keep_releases)
|
17
|
+
set :use_sudo, false unless exists?(:use_sudo)
|
18
|
+
set :scm, :git unless exists?(:scm)
|
17
19
|
|
18
20
|
if `uname -a`.include?("Darwin")
|
19
21
|
run_local_psql = "psql -h localhost -U postgres"
|
@@ -88,8 +90,12 @@ end
|
|
88
90
|
|
89
91
|
namespace :db do
|
90
92
|
task :create do
|
93
|
+
if adapter == "postgresql"
|
91
94
|
run "echo \"create user #{db_username} with password '#{db_password}';\" | #{sudo} -u postgres psql"
|
92
95
|
run "echo \"create database #{database} owner #{db_username};\" | #{sudo} -u postgres psql"
|
96
|
+
else
|
97
|
+
puts "Cannot create, adapter #{adapter} is not implemented yet"
|
98
|
+
end
|
93
99
|
end
|
94
100
|
task :seed do
|
95
101
|
run "cd #{current_path} && bundle exec rake RAILS_ENV=#{rails_env} db:seed"
|
@@ -108,7 +114,7 @@ namespace :db do
|
|
108
114
|
system "echo \"create database #{local_database} owner #{local_db_username};\" | #{run_local_psql}"
|
109
115
|
# system "#{run_local_psql} #{local_database} < #{local_folder_path}/#{db_file_name}"
|
110
116
|
puts "ENTER your development password: #{local_db_password}"
|
111
|
-
system "
|
117
|
+
system "#{run_local_psql} -U#{local_db_username} #{local_database} < #{local_folder_path}/#{db_file_name}"
|
112
118
|
system "rm #{local_folder_path}/#{db_file_name}"
|
113
119
|
end
|
114
120
|
task :pg_import do
|
@@ -206,6 +212,20 @@ namespace :nginx do
|
|
206
212
|
listen 80;
|
207
213
|
server_name #{server_name};
|
208
214
|
root #{current_path}/public;
|
215
|
+
# location ~ ^/assets/ {
|
216
|
+
# expires 1y;
|
217
|
+
# add_header Cache-Control public;
|
218
|
+
# add_header ETag "";
|
219
|
+
# break;
|
220
|
+
# }
|
221
|
+
|
222
|
+
location ~ ^/(assets)/ {
|
223
|
+
root #{current_path}/public;
|
224
|
+
gzip_static on; # to serve pre-gzipped version
|
225
|
+
expires max;
|
226
|
+
add_header Cache-Control public;
|
227
|
+
}
|
228
|
+
|
209
229
|
location / {
|
210
230
|
try_files $uri @unicorn;
|
211
231
|
}
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: capobvious
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.7
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,12 +9,24 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2012-02
|
13
|
-
dependencies:
|
12
|
+
date: 2012-03-02 00:00:00.000000000 Z
|
13
|
+
dependencies:
|
14
|
+
- !ruby/object:Gem::Dependency
|
15
|
+
name: capistrano
|
16
|
+
requirement: &70265208585520 !ruby/object:Gem::Requirement
|
17
|
+
none: false
|
18
|
+
requirements:
|
19
|
+
- - ! '>='
|
20
|
+
- !ruby/object:Gem::Version
|
21
|
+
version: '0'
|
22
|
+
type: :runtime
|
23
|
+
prerelease: false
|
24
|
+
version_requirements: *70265208585520
|
14
25
|
description: Capfile that we use every day
|
15
26
|
email:
|
16
27
|
- donotsendhere@gmail.com
|
17
|
-
executables:
|
28
|
+
executables:
|
29
|
+
- capobvious
|
18
30
|
extensions: []
|
19
31
|
extra_rdoc_files: []
|
20
32
|
files:
|
@@ -22,8 +34,10 @@ files:
|
|
22
34
|
- Gemfile
|
23
35
|
- README.markdown
|
24
36
|
- Rakefile
|
37
|
+
- bin/capobvious
|
25
38
|
- capobvious.gemspec
|
26
39
|
- lib/capistrano/ext/capobvious.rb
|
40
|
+
- lib/capobvious/version.rb
|
27
41
|
homepage: ''
|
28
42
|
licenses: []
|
29
43
|
post_install_message:
|
@@ -44,7 +58,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
44
58
|
version: '0'
|
45
59
|
requirements: []
|
46
60
|
rubyforge_project: capobvious
|
47
|
-
rubygems_version: 1.8.
|
61
|
+
rubygems_version: 1.8.15
|
48
62
|
signing_key:
|
49
63
|
specification_version: 3
|
50
64
|
summary: Cap recipes
|