Sha256: b0ab48b60561878bc9f7ce95448f8925959a15e4ac740bc292c359b5f9c6fdbf

Contents?: true

Size: 1.01 KB

Versions: 1

Compression:

Stored size: 1.01 KB

Contents

module SecretsCli
  module Vault
    class Pull < SecretsCli::Vault::Read
      attr_reader :secrets_file, :secrets_dir

      def initialize(options)
        super
        SecretsCli::Check::Secrets.new(options).call
        @secrets_file = options.secrets_file || config.secrets_file
        @secrets_dir = options.secrets_dir || '.'
      end

      private

      def command
        secrets = super
        compare(secrets) unless options.ci_mode
        write(secrets)
        secrets
      end

      def compare(secrets)
        diff = TTY::File.diff(secrets_file, secrets, verbose: false)
        return if diff == ''
        prompt.ok("There are some differences between #{secrets_file} and vault:")
        pretty_diff(diff)
        exit 0 unless prompt.yes?("Are you sure you want to override #{secrets_file}?")
      end

      def write(secrets)
        print_verbose("Writing to #{secrets_file}")
        File.open(File.join(secrets_dir, secrets_file), 'w') { |file| file.write(secrets) }
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
secrets_cli-1.5.0 lib/secrets_cli/vault/pull.rb