Sha256: 647755daaf0bbbe9436e3fbade9565dafc07c7f11ed721951cc43b6158a1862f

Contents?: true

Size: 1.1 KB

Versions: 21

Compression:

Stored size: 1.1 KB

Contents

require 'English'

class Thor
  module Actions
    # execute a shell command and raise an error if non-zero exit code is returned
    # return the string output from the command
    def run_cmd(cmd, options = {})
      say "$ #{cmd}"
      output = `#{cmd}`
      success = $CHILD_STATUS.to_i == 0
      fail "#{cmd} failed" unless success || options[:allow_failure]
      output
    end

    # launch configured editor to retreive message/string
    # see http://osdir.com/ml/ruby-talk/2010-06/msg01424.html
    # see https://gist.github.com/rkumar/456809
    # see http://rdoc.info/github/visionmedia/commander/master/Commander/UI.ask_editor
    def ask_editor(initial_text = '', editor = nil)
      editor ||= ENV['EDITOR'] || 'vi'
      Tempfile.open('reviewrequest.md') do |f|
        f << initial_text
        f.flush

        flags = case editor
        when 'mate', 'emacs', 'subl'
          '-w'
        when 'mvim'
          '-f'
        else
          ''
        end
        pid = fork { exec([editor, flags, f.path].join(' ')) }
        Process.waitpid(pid)
        File.read(f.path)
      end
    end
  end
end

Version data entries

21 entries across 21 versions & 1 rubygems

Version Path
thegarage-gitx-2.10.0 lib/thegarage/gitx/extensions/thor.rb
thegarage-gitx-2.9.0 lib/thegarage/gitx/extensions/thor.rb
thegarage-gitx-2.8.1 lib/thegarage/gitx/extensions/thor.rb
thegarage-gitx-2.8.0 lib/thegarage/gitx/extensions/thor.rb
thegarage-gitx-2.7.2 lib/thegarage/gitx/extensions/thor.rb
thegarage-gitx-2.7.1 lib/thegarage/gitx/extensions/thor.rb
thegarage-gitx-2.7.0 lib/thegarage/gitx/extensions/thor.rb
thegarage-gitx-2.6.0 lib/thegarage/gitx/extensions/thor.rb
thegarage-gitx-2.5.1 lib/thegarage/gitx/extensions/thor.rb
thegarage-gitx-2.5.0 lib/thegarage/gitx/extensions/thor.rb
thegarage-gitx-2.5.0.beta5 lib/thegarage/gitx/extensions/thor.rb
thegarage-gitx-2.5.0.beta4 lib/thegarage/gitx/extensions/thor.rb
thegarage-gitx-2.5.0.beta3 lib/thegarage/gitx/extensions/thor.rb
thegarage-gitx-2.5.0.beta2 lib/thegarage/gitx/thor_extensions.rb
thegarage-gitx-2.5.0.beta1 lib/thegarage/gitx/thor_extensions.rb
thegarage-gitx-2.4.2 lib/thegarage/gitx/extensions/thor.rb
thegarage-gitx-2.5.0.alpha1 lib/thegarage/gitx/thor_extensions.rb
thegarage-gitx-2.4.1 lib/thegarage/gitx/thor_extensions.rb
thegarage-gitx-2.4.0 lib/thegarage/gitx/thor_extensions.rb
thegarage-gitx-2.4.0.pre1 lib/thegarage/gitx/thor_extensions.rb