Sha256: 4ef4ae2c30089237a9f7834e4bc00aa88177396191390757459c7eb3f0b1f919

Contents?: true

Size: 1.22 KB

Versions: 2

Compression:

Stored size: 1.22 KB

Contents

require 'sym/app/commands/base_command'
module Sym
  module App
    module Commands
      class BashCompletion < BaseCommand

        required_options [:bash_completion]
        try_after :generate_key, :open_editor, :encrypt_decrypt


        def execute
          install_completion_file
          file = opts[:bash_completion]
          if File.exist?(file)
            if File.read(file).include?(Sym::BASH_COMPLETION[:script])
              "#{'Hmmm'.bold.yellow}: #{file.bold.yellow} had completion for #{'sym'.bold.red} already installed\n"
            else
              append_completion_script(file)
              "#{'OK'.bold.green}: appended completion for #{'sym'.bold.red} to #{file.bold.yellow}\n"
            end
          else
            append_completion_script(file)
            "#{'OK'.bold.green}: created new file #{file.bold.yellow} and installed BASH completion for #{'sym'.bold.red}\n"
          end
        end

        def install_completion_file
          FileUtils.cp(Sym::BASH_COMPLETION[:file], Sym::COMPLETION_PATH)
        end

        def append_completion_script(file)
          File.open(file, 'a') do |fd|
            fd.write(Sym::BASH_COMPLETION[:script])
          end
        end
      end
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
sym-2.1.1 lib/sym/app/commands/bash_completion.rb
sym-2.1.0 lib/sym/app/commands/bash_completion.rb