forked from UNC-Libraries/box-c
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Capfile
139 lines (111 loc) · 3.18 KB
/
Capfile
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
require "capistrano/setup"
# Upload the tarball to a temporary directory, chdir to the specified directory, and expand
def upload_and_expand!(tarball, dir)
temp_dir = capture(:mktemp, "-d")
execute :chmod, "a+rx", temp_dir
tarball_basename = File.basename(tarball)
upload_path = File.join(temp_dir, tarball_basename)
upload! tarball, upload_path
execute :tar, "--warning=no-unknown-keyword", "-xzf", upload_path, "-C", dir
end
WEBAPPS = FileList[
"access/target/ROOT.war",
"admin/target/admin.war",
"services/target/services.war",
"djatoka-cdr/dist/djatoka.war"
]
LIB = FileList[
"fcrepo-cdr-fesl/target/fcrepo-cdr-fesl-3.4-SNAPSHOT.jar",
"fcrepo-clients/target/fcrepo-clients-3.4-SNAPSHOT.jar",
"fcrepo-irods-storage/target/fcrepo-irods-storage-3.4-SNAPSHOT.jar",
"metadata/target/cdr-metadata.jar",
"security/target/security-3.4-SNAPSHOT.jar",
"staging-areas/target/staging-areas-0.0.1-SNAPSHOT.jar"
]
SOLRLIB = FileList[
"oai4solr/oai2-plugin/target/oai2-plugin-4.1.jar"
]
file "static.tar.gz" => FileList["access/src/main/external/static/**/*"] do |t|
sh "export COPYFILE_DISABLE=1; tar -cvzf #{t.name} -C access/src/main/external/static ."
end
desc "Remove temporary files"
task :clean do
rm_f "static.tar.gz"
end
namespace :update do
desc "Update static files"
task :static => "static.tar.gz" do |t|
tarball = t.prerequisites.first
on roles(:web) do
execute :rm, "-rf", "/var/deploy/static"
execute :mkdir, "-p", "/var/deploy/static"
upload_and_expand!(tarball, "/var/deploy/static")
end
end
desc "Update webapps"
task :webapps => WEBAPPS do |t|
on roles(:web) do
execute :mkdir, "-p", "/var/deploy/webapps"
t.prerequisites.each do |p|
upload! p, "/var/deploy/webapps"
end
end
end
desc "Update libraries"
task :lib => LIB do |t|
on roles(:web) do
execute :rm, "-rf", "/var/deploy/lib"
execute :mkdir, "-p", "/var/deploy/lib"
t.prerequisites.each do |p|
upload! p, "/var/deploy/lib"
end
end
end
desc "Update Solr libraries"
task :solrlib => SOLRLIB do |t|
on roles(:web) do
execute :rm, "-rf", "/var/deploy/solrlib"
execute :mkdir, "-p", "/var/deploy/solrlib"
t.prerequisites.each do |p|
upload! p, "/var/deploy/solrlib"
end
end
end
desc "Update deposit service"
task :deposit => "deposit/target/deposit.jar" do |t|
on roles(:web) do
execute :rm, "-rf", "/var/deploy/deposit"
execute :mkdir, "-p", "/var/deploy/deposit"
upload! t.prerequisites.first, "/var/deploy/deposit"
end
end
end
task :update do
invoke "update:static"
invoke "update:webapps"
invoke "update:lib"
invoke "update:solrlib"
invoke "update:deposit"
end
namespace :restart do
desc "Restart the tomcat service"
task :tomcat do
on roles(:web) do
sudo :service, :tomcat, :restart
end
end
desc "Restart the deposit service"
task :deposit do
on roles(:web) do
sudo :service, :deposit, :restart
end
end
end
task :restart do
invoke "restart:tomcat"
invoke "restart:deposit"
end
task :deploy do
invoke "update"
invoke "restart"
end