capistrano-rails-synchronizer 0.1.4
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- checksums.yaml.gz.sig +0 -0
- data.tar.gz.sig +0 -0
- data/lib/capistrano-rails-synchronizer.rb +1 -0
- data/lib/synchronizer.rb +5 -0
- data/lib/synchronizer/assets.rb +30 -0
- data/lib/synchronizer/db.rb +35 -0
- data/lib/synchronizer/helper.rb +24 -0
- data/lib/tasks/sync.rake +109 -0
- metadata +86 -0
- metadata.gz.sig +1 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: f3706c9efe5661227f2168e27844df12f37ecfb1
|
4
|
+
data.tar.gz: 74d3cb30cdb3fc76698e5415915317390348d6f4
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 643b3b8e1bb507ee34d28f1aac05173d66142e3d881b7eddd58e33cabc31ee0e31208c8e20c265cd6696fc013fcde6c99bd941d4068c79408623d9093a86fa00
|
7
|
+
data.tar.gz: 2ba2a2c587bcbdfc1cd9687e6b1b26c562915d516de8ca5f0bc5dc4210430dfa07f037a68605c439b5dce528893e8f265a34b793f3ea331e2935134bffee5ae0
|
checksums.yaml.gz.sig
ADDED
Binary file
|
data.tar.gz.sig
ADDED
Binary file
|
@@ -0,0 +1 @@
|
|
1
|
+
require 'synchronizer'
|
data/lib/synchronizer.rb
ADDED
@@ -0,0 +1,30 @@
|
|
1
|
+
module Assets
|
2
|
+
|
3
|
+
def pack_assets
|
4
|
+
on roles :web do
|
5
|
+
execute "cd #{shared_path}; #{pack_assets_cmd}"
|
6
|
+
end
|
7
|
+
end
|
8
|
+
|
9
|
+
|
10
|
+
def copy_assets_to_local
|
11
|
+
download! "#{fetch(:assets_archive_file)}", "#{fetch(:assets_archive_file).split('/')[-1]}"
|
12
|
+
end
|
13
|
+
|
14
|
+
def copy_assets_cmd
|
15
|
+
if dest = fetch(:sync_assets_to, nil)
|
16
|
+
scp_file(fetch(:assets_archive_file), dest)
|
17
|
+
else
|
18
|
+
raise "missing variable sync_assets_to"
|
19
|
+
end
|
20
|
+
end
|
21
|
+
|
22
|
+
|
23
|
+
private
|
24
|
+
|
25
|
+
def pack_assets_cmd
|
26
|
+
assets_archive = "#{shared_path}/public-#{fetch(:stage)}.tgz"
|
27
|
+
set :assets_archive_file, assets_archive
|
28
|
+
"tar cvfzp #{assets_archive} ./public"
|
29
|
+
end
|
30
|
+
end
|
@@ -0,0 +1,35 @@
|
|
1
|
+
module DB
|
2
|
+
|
3
|
+
def dump_db
|
4
|
+
_stage = fetch(:stage, nil).to_s
|
5
|
+
cfg = read_db_config(_stage)
|
6
|
+
execute pg_dump_cmd(cfg)
|
7
|
+
end
|
8
|
+
|
9
|
+
def copy_db_cmd
|
10
|
+
if dest = fetch(:sync_db_to, nil)
|
11
|
+
scp_file(fetch(:db_dump_file), dest)
|
12
|
+
else
|
13
|
+
raise "missing variable sync_db_to"
|
14
|
+
end
|
15
|
+
end
|
16
|
+
|
17
|
+
def copy_db_to_local
|
18
|
+
download! "#{fetch(:db_dump_file)}", "#{fetch(:db_dump_file).split('/')[-1]}"
|
19
|
+
end
|
20
|
+
|
21
|
+
private
|
22
|
+
|
23
|
+
def pg_dump_cmd(opts)
|
24
|
+
db_dump_file = "#{shared_path}/#{opts.fetch('database')}.dump"
|
25
|
+
set :db_dump_file, db_dump_file
|
26
|
+
str = "PGPASSWORD=#{opts.fetch('password')} pg_dump -U #{opts.fetch('username')} -h #{opts.fetch('host')} -Fc #{opts.fetch('database')} -f #{db_dump_file}"
|
27
|
+
str
|
28
|
+
end
|
29
|
+
|
30
|
+
|
31
|
+
def read_db_config(stage)
|
32
|
+
db_cfg = YAML::load(capture("cat #{shared_path}/config/database.yml"))
|
33
|
+
db_cfg[stage]
|
34
|
+
end
|
35
|
+
end
|
@@ -0,0 +1,24 @@
|
|
1
|
+
module Helper
|
2
|
+
|
3
|
+
def destination
|
4
|
+
puts "deprecated... will vanish soon..."
|
5
|
+
_stage = fetch(:stage, nil).to_s
|
6
|
+
dest = fetch(:sync_to, nil)
|
7
|
+
if dest
|
8
|
+
dest
|
9
|
+
else
|
10
|
+
ask(:sync_to, stages.delete_if { |x| x == _stage }.join('|') )
|
11
|
+
dest = fetch(:sync_to, nil)
|
12
|
+
end
|
13
|
+
end
|
14
|
+
|
15
|
+
def scp_file(src, dest)
|
16
|
+
capture "scp #{src} #{dest}"
|
17
|
+
end
|
18
|
+
|
19
|
+
def _cset(name, *args, &block)
|
20
|
+
unless exists?(name)
|
21
|
+
set(name, *args, &block)
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
data/lib/tasks/sync.rake
ADDED
@@ -0,0 +1,109 @@
|
|
1
|
+
require 'pp'
|
2
|
+
require 'synchronizer'
|
3
|
+
|
4
|
+
include DB
|
5
|
+
include Assets
|
6
|
+
include Helper
|
7
|
+
|
8
|
+
|
9
|
+
desc 'copies database and assets to destination'
|
10
|
+
task :sync do
|
11
|
+
on roles :all do
|
12
|
+
info "synchronizing data to #{destination}"
|
13
|
+
end
|
14
|
+
invoke 'sync:db:transfer'
|
15
|
+
invoke 'sync:assets:transfer'
|
16
|
+
end
|
17
|
+
|
18
|
+
namespace :sync do
|
19
|
+
|
20
|
+
desc 'syncs db and assets to local'
|
21
|
+
task :local do
|
22
|
+
invoke 'sync:db:to_local'
|
23
|
+
invoke 'sync:assets:to_local'
|
24
|
+
end
|
25
|
+
|
26
|
+
desc 'dumps the database and copies the dump to destination stage'
|
27
|
+
task :db do
|
28
|
+
invoke 'sync:db:transfer'
|
29
|
+
end
|
30
|
+
|
31
|
+
|
32
|
+
desc 'tars assets and copies the archive to destination stage'
|
33
|
+
task :assets do
|
34
|
+
invoke 'sync:assets:transfer'
|
35
|
+
end
|
36
|
+
|
37
|
+
#desc 'restores assets and database on destination host'
|
38
|
+
#task :restore do
|
39
|
+
# invoke 'sync:db:restore'
|
40
|
+
# invoke 'sync:assets:unpack'
|
41
|
+
#end
|
42
|
+
|
43
|
+
namespace :db do
|
44
|
+
|
45
|
+
desc 'dump database'
|
46
|
+
task :dump do
|
47
|
+
on roles :db do
|
48
|
+
info 'dumping database'
|
49
|
+
dump_db
|
50
|
+
info 'finished dumping'
|
51
|
+
end
|
52
|
+
end
|
53
|
+
|
54
|
+
desc 'create db-dump and copy to local'
|
55
|
+
task :to_local do
|
56
|
+
on roles :db do
|
57
|
+
invoke 'sync:db:dump'
|
58
|
+
copy_db_to_local
|
59
|
+
end
|
60
|
+
end
|
61
|
+
|
62
|
+
desc 'copy database dump to other stage'
|
63
|
+
task :transfer do
|
64
|
+
on roles :db do |host|
|
65
|
+
invoke 'sync:db:dump'
|
66
|
+
info "copying database dump from #{host} to other stage #{fetch(:sync_db_to)}"
|
67
|
+
copy_db_cmd
|
68
|
+
end
|
69
|
+
end
|
70
|
+
|
71
|
+
end
|
72
|
+
|
73
|
+
namespace :assets do
|
74
|
+
|
75
|
+
desc 'copies asets to destination'
|
76
|
+
task :transfer do
|
77
|
+
on roles :web do
|
78
|
+
invoke 'sync:assets:pack'
|
79
|
+
info "copying assets to destination #{fetch(:sync_assets_to)}"
|
80
|
+
copy_assets_cmd
|
81
|
+
end
|
82
|
+
end
|
83
|
+
|
84
|
+
desc 'copy assets to local'
|
85
|
+
task :to_local do
|
86
|
+
on roles :web do
|
87
|
+
invoke 'sync:assets:pack'
|
88
|
+
copy_assets_to_local
|
89
|
+
end
|
90
|
+
end
|
91
|
+
|
92
|
+
|
93
|
+
#desc 'pack, copy and unpack assets on other stage'
|
94
|
+
#task :unpack do
|
95
|
+
# on roles :web do
|
96
|
+
# invoke 'sync:assets:copy'
|
97
|
+
# info 'unpacking assets'
|
98
|
+
# end
|
99
|
+
#end
|
100
|
+
|
101
|
+
#desc 'pack assets'
|
102
|
+
task :pack do
|
103
|
+
on roles :web do
|
104
|
+
pack_assets
|
105
|
+
end
|
106
|
+
end
|
107
|
+
end
|
108
|
+
|
109
|
+
end
|
metadata
ADDED
@@ -0,0 +1,86 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: capistrano-rails-synchronizer
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.1.4
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- rene paulokat
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain:
|
11
|
+
- |
|
12
|
+
-----BEGIN CERTIFICATE-----
|
13
|
+
MIIDXDCCAkSgAwIBAgIBATANBgkqhkiG9w0BAQUFADA6MQ0wCwYDVQQDDARyZW5l
|
14
|
+
MRQwEgYKCZImiZPyLGQBGRYEc28zNjETMBEGCgmSJomT8ixkARkWA25ldDAeFw0x
|
15
|
+
NTA3MTAxNTMyNDRaFw0xNjA3MDkxNTMyNDRaMDoxDTALBgNVBAMMBHJlbmUxFDAS
|
16
|
+
BgoJkiaJk/IsZAEZFgRzbzM2MRMwEQYKCZImiZPyLGQBGRYDbmV0MIIBIjANBgkq
|
17
|
+
hkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA8RqRHqGzIcZgYV9cC5DygM6rA5T3sadk
|
18
|
+
guHNaqV+VH8+eYOUpHFt4ej1iEPya5jBErsHZEKXLhQZ1Sh6yKpqvT4sQLrTkQ0Y
|
19
|
+
naOmQmueOvOoeJOE8eUMIGiCqsBmPFcUzIcpgZ2Sibu0VZsOGzurpT7Lzj6fXiu/
|
20
|
+
OugAVvclfVMy+MB8orB0GV2nmZ2Hs6V0DmspIvLXhp2c+y4HXWiqXvleFx9dTwWc
|
21
|
+
k5OND1vR9tYN+3EBte5ETnQ5N26ZYRgeuEKxVbxrDODzfeZUCSrfIqHqH8KDvc7X
|
22
|
+
0ZvKlOZ58ZZ0TEm7BDLfCg9JdfJ5CPFwEuCDxZAyFfk7bFtobI0ubQIDAQABo20w
|
23
|
+
azAJBgNVHRMEAjAAMAsGA1UdDwQEAwIEsDAdBgNVHQ4EFgQU//+NDAgo3pOzGygK
|
24
|
+
S3orEjBTxJQwGAYDVR0RBBEwD4ENcmVuZUBzbzM2Lm5ldDAYBgNVHRIEETAPgQ1y
|
25
|
+
ZW5lQHNvMzYubmV0MA0GCSqGSIb3DQEBBQUAA4IBAQBmSt3BBM2Gf3y1YugJFpCj
|
26
|
+
J+XD0OjuRNfkXS67JkRcPeVydr6RZPS7IAx7LHmyvqSeMRLP4jp0VUyJbI/qNCN1
|
27
|
+
hhXMVdLM2bANjn/rlJEPvpdDgypuXk7AuMjXQpUU3EGq+EcPbot+RfSlGg4Ndn3D
|
28
|
+
cfD4sx2+gWoBefqQXp3D8DKUFWbny2sC3raPXdHVd0qQ03mldyrxMHxqPYmqDiOs
|
29
|
+
oSb+3px5AogC7i+BxZ28l/vs8zx8OnlDmS631gRSLH777KsaR6/oWntvsvPm8Jgr
|
30
|
+
EePKDI8r9ZSVkkt3XFn5MWAfX5hxvegGS5ExfyNtFeE8e+3B2Ha6ge9B6HTn+chR
|
31
|
+
-----END CERTIFICATE-----
|
32
|
+
date: 2015-07-10 00:00:00.000000000 Z
|
33
|
+
dependencies:
|
34
|
+
- !ruby/object:Gem::Dependency
|
35
|
+
name: capistrano-rails
|
36
|
+
requirement: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - "~>"
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '1.1'
|
41
|
+
type: :runtime
|
42
|
+
prerelease: false
|
43
|
+
version_requirements: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - "~>"
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: '1.1'
|
48
|
+
description: Rails specific Capistrano tasks to synchonize stages
|
49
|
+
email:
|
50
|
+
- rene@so36.net
|
51
|
+
executables: []
|
52
|
+
extensions: []
|
53
|
+
extra_rdoc_files: []
|
54
|
+
files:
|
55
|
+
- lib/capistrano-rails-synchronizer.rb
|
56
|
+
- lib/synchronizer.rb
|
57
|
+
- lib/synchronizer/assets.rb
|
58
|
+
- lib/synchronizer/db.rb
|
59
|
+
- lib/synchronizer/helper.rb
|
60
|
+
- lib/tasks/sync.rake
|
61
|
+
homepage: https://github.com/erpe/capistrano-rails-synchonizer
|
62
|
+
licenses:
|
63
|
+
- MIT
|
64
|
+
metadata: {}
|
65
|
+
post_install_message: "thanks for all the fish and \nadd 'require \"synchronizer\"'
|
66
|
+
to your Capfile"
|
67
|
+
rdoc_options: []
|
68
|
+
require_paths:
|
69
|
+
- lib
|
70
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
71
|
+
requirements:
|
72
|
+
- - ">="
|
73
|
+
- !ruby/object:Gem::Version
|
74
|
+
version: '0'
|
75
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
76
|
+
requirements:
|
77
|
+
- - ">="
|
78
|
+
- !ruby/object:Gem::Version
|
79
|
+
version: '0'
|
80
|
+
requirements: []
|
81
|
+
rubyforge_project:
|
82
|
+
rubygems_version: 2.4.8
|
83
|
+
signing_key:
|
84
|
+
specification_version: 4
|
85
|
+
summary: Rails specific Capistrano tasks to synchonize stages
|
86
|
+
test_files: []
|
metadata.gz.sig
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
��G!z � ���Q�>oԻ�el�S3�*tQʢ3�ϭ�|���!��R%��͑ؿ��h�yxL^��S���!^�߂�}������1H���d���+[����z�n gK5g��fa�!���%�Ī�)�hx���xl�{�"7ho?m���]^����3~mj��͉��yi9�ɞ�e��%<�S���ݢ�g��*�@o1�Q�pX�F�=�- ,������2;6�GPh�j|I x��CD0��1 J��
|