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
|
# File 'lib/mimas/deployment/caddy.rb', line 4
def refreshing_caddy(session, &block)
session.run "mkdir -p #{remote_destination}"
session.upload StringIO.new(commit_hash), remote_destination.join("commit-sha")
remote_caddyfile = ""
begin
remote_caddyfile = session.run "cat #{caddyfile_path}", capture: true
rescue SSH::Session::NonZeroExitCode
end
caddyfile_modified = remote_caddyfile != caddyfile
if caddyfile_modified
say "Uploading new Caddyfile"
begin
session.upload StringIO.new(caddyfile), new_caddyfile_path
session.run "caddy validate --config #{new_caddyfile_path}", capture: true
say "New Caddyfile validated"
rescue SSH::Session::NonZeroExitCode => e
session.run "rm #{new_caddyfile_path}"
say caddyfile.red
say e.output.bold.red
raise "Your Caddyfile is invalid"
end
end
yield
if caddyfile_modified
say "Updating Caddyfile and reloading Caddy"
session.run "mv #{new_caddyfile_path} #{caddyfile_path}"
session.run "sudo systemctl reload caddy"
end
end
|