Sha256: fac8d56c6a94fb6b5fb8282ef0b35e2409cae278bcabda0d18c70e6202beda91
Contents?: true
Size: 1.82 KB
Versions: 18
Compression:
Stored size: 1.82 KB
Contents
module Kamal::Commands::App::Assets def extract_assets asset_container = "#{role.container_prefix}-assets" combine \ make_directory(role.asset_extracted_directory), [ *docker(:stop, "-t 1", asset_container, "2> /dev/null"), "|| true" ], docker(:run, "--name", asset_container, "--detach", "--rm", "--entrypoint", "sleep", config.absolute_image, "1000000"), docker(:cp, "-L", "#{asset_container}:#{role.asset_path}/.", role.asset_extracted_directory), docker(:stop, "-t 1", asset_container), by: "&&" end def sync_asset_volumes(old_version: nil) new_extracted_path, new_volume_path = role.asset_extracted_directory(config.version), role.asset_volume.host_path if old_version.present? old_extracted_path, old_volume_path = role.asset_extracted_directory(old_version), role.asset_volume(old_version).host_path end commands = [ make_directory(new_volume_path), copy_contents(new_extracted_path, new_volume_path) ] if old_version.present? commands << copy_contents(new_extracted_path, old_volume_path, continue_on_error: true) commands << copy_contents(old_extracted_path, new_volume_path, continue_on_error: true) end chain *commands end def clean_up_assets chain \ find_and_remove_older_siblings(role.asset_extracted_directory), find_and_remove_older_siblings(role.asset_volume_directory) end private def find_and_remove_older_siblings(path) [ :find, Pathname.new(path).dirname.to_s, "-maxdepth 1", "-name", "'#{role.name}-*'", "!", "-name", Pathname.new(path).basename.to_s, "-exec rm -rf \"{}\" +" ] end def copy_contents(source, destination, continue_on_error: false) [ :cp, "-rnT", "#{source}", destination, *("|| true" if continue_on_error) ] end end
Version data entries
18 entries across 18 versions & 2 rubygems