Sha256: 093920d8a18ea3ae1e39d3b8e5b1d9f040c45402c1da03e52ab32ffa867b8227

Contents?: true

Size: 993 Bytes

Versions: 1

Compression:

Stored size: 993 Bytes

Contents

require "thor"

module Zonesync
  class CLI < Thor
    def self.exit_on_failure?
      true
    end

    default_command :sync
    desc "sync", "syncs the contents of Zonefile to the DNS server configured in Rails.application.credentials.zonesync"
    method_option :dry_run, type: :boolean, default: false, aliases: :n, desc: "log operations to STDOUT but don't perform the sync"
    def sync
      Zonesync.call credentials: default_credentials, dry_run: options[:dry_run]
    end

    private

    def default_credentials
      if defined?(Rails.application.credentials)
        Rails.application.credentials.zonesync
      else
        require "active_support/encrypted_configuration"
        require "active_support/core_ext/hash/keys"
        credentials = ActiveSupport::EncryptedConfiguration.new(config_path: "config/credentials.yml.enc", key_path: "config/master.key", raise_if_missing_key: true, env_key: "RAILS_MASTER_KEY")
        credentials.zonesync
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
zonesync-0.3.0 lib/zonesync/cli.rb