sumodev_deploy 0.1 → 0.2
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/lib/sumodev_deploy.rb +77 -0
- data/sumodev_deploy.gemspec +1 -1
- metadata +1 -1
data/lib/sumodev_deploy.rb
CHANGED
@@ -32,10 +32,87 @@ configuration.load do
|
|
32
32
|
run "create_db #{db_name}"
|
33
33
|
end
|
34
34
|
|
35
|
+
desc "Imports the database from the server into your local database"
|
36
|
+
task :get, :roles => :db do
|
37
|
+
# @todo Defv would be nice if this also worked on production server. I think we need some extra vars in the capfile for username, password and host. by default these can be the values used on the dev-server.
|
38
|
+
system %{mysqladmin create #{db_name}}
|
39
|
+
system %{ssh sites@dev.sumocoders.eu mysqldump --set-charset #{db_name} | mysql #{db_name}}
|
40
|
+
end
|
41
|
+
|
35
42
|
desc "Get database info"
|
36
43
|
task :info, :roles => :db do
|
37
44
|
run "info_db #{db_name}"
|
38
45
|
end
|
46
|
+
|
47
|
+
desc "Imports the database from your local server to the remote one"
|
48
|
+
task :put, :roles => :db do
|
49
|
+
# @todo Defv would be nice if this also worked on production server. I think we need some extra vars in the capfile for username, password and host. by default these can be the values used on the dev-server.
|
50
|
+
system %{ssh sites@dev.sumocoders.eu "mysqldump --set-charset #{$db_name} > #{current_path}/#{release_name}.sql" }
|
51
|
+
system %{mysqldump --set-charset #{db_name} | ssh sites@dev.sumocoders.eu mysql #{db_name}}
|
52
|
+
end
|
53
|
+
end
|
54
|
+
|
55
|
+
namespace :files do
|
56
|
+
def find_folder_in_parents(folder)
|
57
|
+
require 'pathname'
|
58
|
+
|
59
|
+
path = Pathname.pwd
|
60
|
+
begin
|
61
|
+
found = Pathname.glob(path + folder)
|
62
|
+
return found.first if found.any?
|
63
|
+
|
64
|
+
path = path.parent
|
65
|
+
end until path.root?
|
66
|
+
end
|
67
|
+
|
68
|
+
desc "Sync all remote files to your local install"
|
69
|
+
task :get, :roles => :app do
|
70
|
+
path = find_folder_in_parents('frontend/files')
|
71
|
+
if !path
|
72
|
+
raise "No frontend/files folder found in this or upper folders. Are you sure you're in a Fork project?"
|
73
|
+
else
|
74
|
+
system %{rsync -rltp #{user}@dev.sumocoders.eu:#{shared_path}/files/ #{path}}
|
75
|
+
end
|
76
|
+
end
|
77
|
+
|
78
|
+
desc "Sync your local files to the remote server"
|
79
|
+
task :put, :roles => :app do
|
80
|
+
# create a backup on the remote, store it under the release-folder, so it will be automagically removed
|
81
|
+
run %{cd #{shared_path} && tar -czf #{current_path}/backup_files.tgz files}
|
82
|
+
|
83
|
+
# check if folder exists
|
84
|
+
path = find_folder_in_parents('frontend/files')
|
85
|
+
if !path
|
86
|
+
raise "No frontend/files folder found in this or upper folders. Are you sure you're in a Fork project?"
|
87
|
+
else
|
88
|
+
system %{rsync -rltp #{path} #{user}@dev.sumocoders.eu:#{shared_path}/files}
|
89
|
+
end
|
90
|
+
end
|
91
|
+
end
|
92
|
+
|
93
|
+
namespace :redirect do
|
94
|
+
desc "Installs the redirect page for the site"
|
95
|
+
task :put, :roles => :app do
|
96
|
+
unless exists?(:production_url)
|
97
|
+
fetch(:production_url) do
|
98
|
+
Capistrano::CLI.ui.ask "What is the production url?"
|
99
|
+
end
|
100
|
+
end
|
101
|
+
|
102
|
+
run %{
|
103
|
+
mkdir -p #{shared_path}/redirect &&
|
104
|
+
wget --quiet -O #{shared_path}/redirect/index.php http://static.sumocoders.be/redirect/index.phps &&
|
105
|
+
wget --quiet -O #{shared_path}/redirect/.htaccess http://static.sumocoders.be/redirect/htaccess
|
106
|
+
}
|
107
|
+
|
108
|
+
# change the url
|
109
|
+
run "if [ -f #{shared_path}/redirect/index.php ]; then sed -i 's/<real-url>/#{production_url.gsub(/['"\\\x0]/,'\\\\\0')}/' #{shared_path}/redirect/index.php; fi"
|
110
|
+
|
111
|
+
run %{
|
112
|
+
rm -f #{current_path} &&
|
113
|
+
ln -s #{shared_path}/redirect #{current_path}
|
114
|
+
}
|
115
|
+
end
|
39
116
|
end
|
40
117
|
|
41
118
|
namespace :setup do
|
data/sumodev_deploy.gemspec
CHANGED