itrigga-cap_deploy 0.0.1 → 0.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/Rakefile CHANGED
@@ -25,6 +25,7 @@ Jeweler::Tasks.new do |gem|
25
25
  }
26
26
  gem.email = "aldavidson@itrigga.com"
27
27
  gem.authors = ["Al Davidson"]
28
+ gem.require_paths << "lib/itrigga"
28
29
  # dependencies defined in Gemfile
29
30
  end
30
31
  Jeweler::RubygemsDotOrgTasks.new
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.0.1
1
+ 0.0.2
@@ -0,0 +1,2 @@
1
+ files = Dir.glob(File.join(File.dirname(__FILE__), 'cap_deploy/**/*') )
2
+ files.each{|f| require f }
@@ -0,0 +1,101 @@
1
+
2
+ task :symlink_init_d_script do
3
+ puts "ensuring init_d script is symlinked"
4
+ run "test -L /etc/init.d/#{application_stub} || #{sudo} ln -s #{script_path}/init_d /etc/init.d/#{application_stub}"
5
+ end
6
+
7
+ task :symlink_log_dirs do
8
+ puts "ensuring #{std_log_dir} exists"
9
+ mkdir_unless_exists( std_log_dir )
10
+ puts "setting ownership on #{std_log_dir} & files to #{user}"
11
+ run "#{sudo} chown -R #{user} #{std_log_dir}"
12
+
13
+ shared_log_dir = "#{shared_dir}/log"
14
+ puts "ensuring #{shared_log_dir} exists"
15
+ mkdir_unless_exists( shared_log_dir )
16
+
17
+ puts "ensuring log dir #{shared_log_dir} is symlinked to #{std_log_dir}"
18
+ symlink_dir( std_log_dir, shared_log_dir )
19
+ puts "setting ownership on #{shared_log_dir} & files to #{user}"
20
+ run "#{sudo} chown -R #{user} #{shared_log_dir}"
21
+
22
+ puts "ensuring log dir #{web_dir}/log is symlinked to #{std_log_dir}"
23
+ symlink_dir( std_log_dir, "#{web_dir}/log" )
24
+
25
+ puts "setting ownership on log dir & files to #{user}"
26
+ run "#{sudo} chown -R #{user} #{web_dir}/log"
27
+
28
+ puts "removing default #{current_path}/log symlink"
29
+ run "#{sudo} rm #{current_path}/log"
30
+ end
31
+
32
+ task :symlink_pid_dirs do
33
+ std_pid_dir = "#{web_dir}/tmp/pids"
34
+ shared_pid_dir = "#{shared_dir}/pids"
35
+
36
+ puts "ensuring #{shared_pid_dir} exists"
37
+ mkdir_unless_exists( shared_pid_dir )
38
+
39
+ puts "ensuring #{std_pid_dir} exists"
40
+ mkdir_unless_exists( std_pid_dir )
41
+
42
+ puts "ensuring pid dir #{std_pid_dir} is symlinked to #{shared_pid_dir}"
43
+ symlink_dir( shared_pid_dir, std_pid_dir )
44
+
45
+ puts "setting ownership on #{web_dir}/tmp & files to #{user}"
46
+ run "#{sudo} chown -R #{user} #{web_dir}/tmp"
47
+
48
+ puts "setting ownership on #{shared_pid_dir} & files to #{user}"
49
+ run "#{sudo} chown -R #{user} #{shared_pid_dir}"
50
+ end
51
+
52
+ task :symlink_site_cache_dir do
53
+ puts "Removing existing symlink from /tmp/cache/sites"
54
+ run "(test -d #{web_dir}/tmp/cache && #{sudo} rm -rf #{web_dir}/tmp/cache) || echo 'no existing /tmp/cache dir'"
55
+
56
+ puts "Creating /shared/cache/sites dir if needed"
57
+ run "mkdir -p #{shared_dir}/cache/sites && #{sudo} chown -R #{user} #{shared_dir}/cache"
58
+
59
+ puts "Symlinking /shared/cache into /tmp/"
60
+ symlink_dir("#{shared_dir}/cache","#{web_dir}/tmp/cache")
61
+
62
+ end
63
+
64
+ task :regenerate_monit do
65
+ puts "regenerating monit config file"
66
+ run "(test -d #{web_dir}/config/monit && #{sudo} rm -rf #{web_dir}/config/monit/*) || mkdir -p #{web_dir}/config/monit"
67
+ run "cd #{web_dir} && ruby script/generate monit"
68
+ puts "setting permissions & ownership on monit config files"
69
+ run "#{sudo} chmod 0700 #{web_dir}/config/monit/* && #{sudo} chown root #{web_dir}/config/monit/*"
70
+ end
71
+
72
+ task :resymlink_monit do
73
+ std_monit_file = "/etc/monit/conf.d/#{application_stub}"
74
+ puts "re-symlinking monit config"
75
+ run "(test -L #{std_monit_file} && #{sudo} rm #{std_monit_file}) || echo 'no existing link'"
76
+ run "#{sudo} ln -s #{web_dir}/config/monit/monit.`readlink /etc/trigga_config_file | xargs basename`.config #{std_monit_file} "
77
+ end
78
+
79
+ task :reload_monit do
80
+ run "#{sudo} monit reload"
81
+ end
82
+
83
+ task :regenerate_logrotate do
84
+ puts "regenerating logrotate config file"
85
+ run "#{sudo} rm #{web_dir}/config/log_rotate/* && cd #{web_dir} && ruby script/generate logrotate"
86
+ puts "setting permissions & ownership on logrotate config files"
87
+ run "#{sudo} chmod 0700 #{web_dir}/config/log_rotate/* && #{sudo} chown root #{web_dir}/config/log_rotate/*"
88
+ end
89
+
90
+ task :resymlink_logrotate do
91
+ logrotate_config_file = "#{web_dir}/config/log_rotate/log_rotate.#{File.basename(trigga_config_file)}.config"
92
+ std_logrotate_file = "/etc/logrotate.d/#{application_stub}"
93
+ puts "re-symlinking logrotate config"
94
+ run "(test -L #{std_logrotate_file} && #{sudo} rm #{std_logrotate_file}) || echo nothing to remove"
95
+ run "#{sudo} ln -s #{web_dir}/config/log_rotate/log_rotate.`readlink /etc/trigga_config_file | xargs basename`.config #{std_logrotate_file} "
96
+ end
97
+
98
+ task :chown_entire_project_dir do
99
+ puts "chowning entire #{application_stub} dir to #{user}"
100
+ run "#{sudo} chown -R #{user} #{deploy_to}"
101
+ end
@@ -0,0 +1,25 @@
1
+ def symlink_dir(from, to)
2
+ run "test -L #{to} || ( #{sudo} find #{to} -mindepth 1 -print | xargs -i mv {} #{from} && #{sudo} rm -rf #{to} && #{sudo} ln -s #{from} #{to} )"
3
+ end
4
+
5
+ def delete_files_from_dir1_which_exist_in_dir2(delete_from_dir, exist_in_dir)
6
+ run "find #{exist_in_dir} -type f | xargs -n1 basename | xargs -I{} bash -c 'test -f #{delete_from_dir}/{} && rm -v #{delete_from_dir}/{} || echo no file #{delete_from_dir}/{} to delete'"
7
+ end
8
+
9
+ def symlink_files_in_dir(from_dir,to_dir)
10
+ delete_files_from_dir1_which_exist_in_dir2(to_dir, from_dir)
11
+
12
+ run "(#{sudo} test -d #{from_dir} && ( find #{from_dir}/ -mindepth 1 -print | xargs --verbose #{sudo} ln -s -f -t #{to_dir} ) ) || echo 'nothing to link'"
13
+ end
14
+
15
+ def mkdir_unless_exists( dir )
16
+ run "test -d #{dir} || #{sudo} mkdir -p #{dir}"
17
+ end
18
+
19
+ def symlink_dir(from, to)
20
+ run "test -L #{to} || ( #{sudo} find #{to} -mindepth 1 -print | xargs -i mv {} #{from} && #{sudo} rm -rf #{to} && #{sudo} ln -s #{from} #{to} )"
21
+ end
22
+
23
+ def mkdir_unless_exists( dir )
24
+ run "test -d #{dir} || #{sudo} mkdir -p #{dir}"
25
+ end
@@ -0,0 +1,7 @@
1
+ after "deploy:setup", :chown_entire_project_dir
2
+ after "deploy:symlink", :symlink_init_d_script
3
+ after "deploy:symlink", :symlink_log_dirs
4
+ after "deploy:symlink", :symlink_pid_dirs
5
+ after "deploy:symlink", :symlink_site_cache_dir
6
+ # only keep the last 5 releases (otherwise diskspace balloons)
7
+ after "deploy:update", "deploy:cleanup"
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: itrigga-cap_deploy
3
3
  version: !ruby/object:Gem::Version
4
- hash: 29
4
+ hash: 27
5
5
  prerelease: false
6
6
  segments:
7
7
  - 0
8
8
  - 0
9
- - 1
10
- version: 0.0.1
9
+ - 2
10
+ version: 0.0.2
11
11
  platform: ruby
12
12
  authors:
13
13
  - Al Davidson
@@ -138,6 +138,10 @@ files:
138
138
  - README.rdoc
139
139
  - Rakefile
140
140
  - VERSION
141
+ - lib/itrigga/cap_deploy.rb
142
+ - lib/itrigga/cap_deploy/cap_tasks.rb
143
+ - lib/itrigga/cap_deploy/filesystem_utils.rb
144
+ - lib/itrigga/cap_deploy/hooks.rb
141
145
  - placeholder.txt
142
146
  - test/helper.rb
143
147
  - test/test_itrigga-cap_deploy.rb
@@ -150,6 +154,8 @@ rdoc_options: []
150
154
 
151
155
  require_paths:
152
156
  - lib
157
+ - lib/itrigga
158
+ - lib/itrigga
153
159
  required_ruby_version: !ruby/object:Gem::Requirement
154
160
  none: false
155
161
  requirements: