Put locks in a locks directory. Ensure that locks directory exits on a primary host.

This commit is contained in:
Igor Alexandrov
2024-03-27 12:04:39 +04:00
parent 43672ec9a5
commit cee449c269
7 changed files with 37 additions and 13 deletions

View File

@@ -86,6 +86,8 @@ module Kamal::Cli
ensure_run_directory
ensure_locks_directory
acquire_lock
begin
@@ -191,5 +193,11 @@ module Kamal::Cli
execute(*KAMAL.server.ensure_run_directory)
end
end
def ensure_locks_directory
on(KAMAL.primary_host) do
execute(*KAMAL.lock.ensure_locks_directory)
end
end
end
end

View File

@@ -21,6 +21,10 @@ class Kamal::Commands::Lock < Kamal::Commands::Base
read_lock_details
end
def ensure_locks_directory
[ :mkdir, "-p", locks_dir ]
end
private
def write_lock_details(message, version)
write \
@@ -40,14 +44,18 @@ class Kamal::Commands::Lock < Kamal::Commands::Base
"/dev/null"
end
def locks_dir
File.join(config.run_directory, "locks")
end
def lock_dir
dir_name = [ config.service, config.destination ].compact.join("-")
"#{config.run_directory}/lock-#{dir_name}"
File.join(locks_dir, dir_name)
end
def lock_details_file
[ lock_dir, :details ].join("/")
File.join(lock_dir, "details")
end
def lock_details(message, version)