Switch to proper standalone executable with Thor
This commit is contained in:
53
lib/mrsk/cli/build.rb
Normal file
53
lib/mrsk/cli/build.rb
Normal file
@@ -0,0 +1,53 @@
|
||||
require "mrsk/cli/base"
|
||||
|
||||
class Mrsk::Cli::Build < Mrsk::Cli::Base
|
||||
desc "deliver", "Deliver a newly built app image to servers"
|
||||
def deliver
|
||||
invoke :push
|
||||
invoke :pull
|
||||
end
|
||||
|
||||
desc "push", "Build locally and push app image to registry"
|
||||
def push
|
||||
run_locally do
|
||||
begin
|
||||
debug "Using builder: #{MRSK.builder.name}"
|
||||
info "Building image may take a while (run with --verbose for progress logging)"
|
||||
execute *MRSK.builder.push
|
||||
rescue SSHKit::Command::Failed => e
|
||||
error "Missing compatible builder, so creating a new one first"
|
||||
execute *MRSK.builder.create
|
||||
execute *MRSK.builder.push
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
desc "pull", "Pull app image from the registry onto servers"
|
||||
def pull
|
||||
on(MRSK.config.hosts) { execute *MRSK.builder.pull }
|
||||
end
|
||||
|
||||
desc "create", "Create a local build setup"
|
||||
def create
|
||||
run_locally do
|
||||
debug "Using builder: #{MRSK.builder.name}"
|
||||
execute *MRSK.builder.create
|
||||
end
|
||||
end
|
||||
|
||||
desc "remove", "Remove local build setup"
|
||||
def remove
|
||||
run_locally do
|
||||
debug "Using builder: #{MRSK.builder.name}"
|
||||
execute *MRSK.builder.remove
|
||||
end
|
||||
end
|
||||
|
||||
desc "details", "Show the name of the configured builder"
|
||||
def details
|
||||
run_locally do
|
||||
puts "Builder: #{MRSK.builder.name} (#{MRSK.builder.target.class.name})"
|
||||
puts capture(*MRSK.builder.info)
|
||||
end
|
||||
end
|
||||
end
|
||||
Reference in New Issue
Block a user