Sha256: 5ee2d1105e577be55cdb4739b0c04f3013a8b1c1e70a2bcc5570eda4ec52271d

Contents?: true

Size: 1.2 KB

Versions: 1

Compression:

Stored size: 1.2 KB

Contents

require_relative 'command'
module Sym
  module App
    module Commands
      class BashCompletion < Command

        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

1 entries across 1 versions & 1 rubygems

Version Path
sym-2.0.3 lib/sym/app/commands/bash_completion.rb