Better require setup

This commit is contained in:
David Heinemeier Hansson
2023-01-12 14:57:34 +01:00
parent d92318e234
commit d3ab10be22
6 changed files with 31 additions and 24 deletions

View File

@@ -1,26 +1,2 @@
require "sshkit"
module Mrsk::Commands
class Base
attr_accessor :config
def initialize(config)
@config = config
end
private
def docker(*args)
args.compact.unshift :docker
end
# Copied from SSHKit::Backend::Abstract#redact to be available inside Commands classes
def redact(arg) # Used in execute_command to hide redact() args a user passes in
arg.to_s.extend(SSHKit::Redaction) # to_s due to our inability to extend Integer, etc
end
end
end
require "mrsk/commands/app"
require "mrsk/commands/prune"
require "mrsk/commands/traefik"
require "mrsk/commands/registry"

View File

@@ -1,3 +1,5 @@
require "mrsk/commands/base"
class Mrsk::Commands::App < Mrsk::Commands::Base
def push
docker :buildx, :build, "--push", "--platform linux/amd64,linux/arm64", "-t", config.absolute_image, "."

21
lib/mrsk/commands/base.rb Normal file
View File

@@ -0,0 +1,21 @@
require "sshkit"
module Mrsk::Commands
class Base
attr_accessor :config
def initialize(config)
@config = config
end
private
def docker(*args)
args.compact.unshift :docker
end
# Copied from SSHKit::Backend::Abstract#redact to be available inside Commands classes
def redact(arg) # Used in execute_command to hide redact() args a user passes in
arg.to_s.extend(SSHKit::Redaction) # to_s due to our inability to extend Integer, etc
end
end
end

View File

@@ -1,3 +1,7 @@
require "mrsk/commands/base"
require "active_support/duration"
require "active_support/core_ext/numeric/time"
class Mrsk::Commands::Prune < Mrsk::Commands::Base
PRUNE_IMAGES_AFTER = 30.days.in_hours.to_i
PRUNE_CONTAINERS_AFTER = 3.days.in_hours.to_i

View File

@@ -1,3 +1,5 @@
require "mrsk/commands/base"
class Mrsk::Commands::Registry < Mrsk::Commands::Base
delegate :registry, to: :config

View File

@@ -1,3 +1,5 @@
require "mrsk/commands/base"
class Mrsk::Commands::Traefik < Mrsk::Commands::Base
def run
docker :run, "--name traefik",