From 1609b43ef88cd4985026c18475bddfcdc7df3c64 Mon Sep 17 00:00:00 2001 From: David Heinemeier Hansson Date: Tue, 10 Jan 2023 19:15:40 +0100 Subject: [PATCH] Temporary fix for #2 --- lib/mrsk/configuration.rb | 4 ++-- lib/tasks/mrsk/setup.rb | 13 +++++++++---- 2 files changed, 11 insertions(+), 6 deletions(-) diff --git a/lib/mrsk/configuration.rb b/lib/mrsk/configuration.rb index cc4623f2..21365be2 100644 --- a/lib/mrsk/configuration.rb +++ b/lib/mrsk/configuration.rb @@ -19,9 +19,9 @@ class Mrsk::Configuration end end - def initialize(config) + def initialize(config, validate: true) @config = ActiveSupport::InheritableOptions.new(config) - ensure_required_keys_present + ensure_required_keys_present if validate end diff --git a/lib/tasks/mrsk/setup.rb b/lib/tasks/mrsk/setup.rb index 23b7832a..9502fd45 100644 --- a/lib/tasks/mrsk/setup.rb +++ b/lib/tasks/mrsk/setup.rb @@ -3,9 +3,14 @@ require "sshkit/dsl" include SSHKit::DSL -MRSK_CONFIG = Mrsk::Configuration.load_file(Rails.root.join("config/deploy.yml")) +if (config_file = Rails.root.join("config/deploy.yml")).exist? + MRSK_CONFIG = Mrsk::Configuration.load_file(config_file) -SSHKit::Backend::Netssh.configure { |ssh| ssh.ssh_options = MRSK_CONFIG.ssh_options } + SSHKit::Backend::Netssh.configure { |ssh| ssh.ssh_options = MRSK_CONFIG.ssh_options } -# No need to use /usr/bin/env, just clogs up the logs -SSHKit.config.command_map[:docker] = "docker" + # No need to use /usr/bin/env, just clogs up the logs + SSHKit.config.command_map[:docker] = "docker" +else + # MRSK is missing config/deploy.yml – run 'rake mrsk:init' + MRSK_CONFIG = Mrsk::Configuration.new({}, validate: false) +end