class Trop::Sh

Constants

DEFAULT

Public Class Methods

cwd(*cmds) click to toggle source
# File lib/trop/shell_deb_verb.rb, line 102
def self.cwd(*cmds)
  wd = Pathname.new(RAKE_RUN_DIR).join('output')
  Dir.chdir(wd) do
    ret, out = systemlocal(cmds)
    return [ret, out]
  end
end
debug!(mode = true) click to toggle source
# File lib/trop/shell_deb_verb.rb, line 65
def self.debug!(mode = true)
  if mode.false?
    @@debug = false
    ENV['DEBUG'] = nil
  else
    @@debug = true
  end
  return @@debug
end
debug?() click to toggle source
# File lib/trop/shell_deb_verb.rb, line 59
def self.debug?
  @@debug = true unless ENV['DEBUG'].nil?
  @@debug = true if $DEBUG
  return @@debug
end
sh(*cmds) click to toggle source
# File lib/trop/shell_deb_verb.rb, line 110
def self.sh(*cmds)
  ret, out = systemlocal(cmds)
  return [ret, out]
end
silence_streams(*streams) { || ... } click to toggle source
# File lib/trop/shell_deb_verb.rb, line 33
def self.silence_streams(*streams)
  @@on_hold = streams.collect {|stream| stream.dup}
  streams.each do |stream|
    stream.reopen(RUBY_PLATFORM =~ /mswin/ ? 'NUL:' : '/dev/null')
    stream.sync = true
  end
  yield
ensure
  streams.each_with_index do |stream, i|
    stream.reopen(@@on_hold[i])
  end
end
silent!() click to toggle source
# File lib/trop/shell_deb_verb.rb, line 47
def self.silent!
  @@verbose = false
  @@debug = false
  ENV['VERBOSE'] = nil
  ENV['DEBUG'] = nil
  return !!@@verbose && !!@@debug
end
silent?() click to toggle source
# File lib/trop/shell_deb_verb.rb, line 55
def self.silent?
  return !(::Trop::Sh.verbose? || ::Trop::Sh.debug?)
end
systemlocal(cmds) click to toggle source
# File lib/trop/shell_deb_verb.rb, line 76
def self.systemlocal(cmds)
  cmd = ''
  return [-1, ''] if cmds.nil? || cmds.blank?

  if cmds.is_a? Array
    cmds.each {|s| cmd = cmd + s.to_s + ' ' unless s.blank?}
  else
    cmd = cmds.to_s
  end
  puts "commands: #{cmd} " if Trop::Sh::debug?
  return [-1, ''] if cmd.blank?
  puts " #{cmd} ".colorize(:green) if Trop::Sh::verbose?

  # execute system call with return in stdout
  stdout = `#{cmd}`
  # silent if successful or not verbose
  if $CHILD_STATUS.success?
    puts stdout.to_s.colorize(:green) if Trop::Sh::verbose?
    return [0, stdout]
  end
  # error case
  puts " #{cmd} ".colorize(:red)
  puts " #{stdout}".colorize(:red)
  [-1, stdout]
end
verbose!() click to toggle source
# File lib/trop/shell_deb_verb.rb, line 27
def self.verbose!
  @@verbose = true
  ENV['VERBOSE'] = "true"
  return !!@@verbose
end
verbose?() click to toggle source
# File lib/trop/shell_deb_verb.rb, line 20
def self.verbose?
  if Rake::FileUtilsExt.verbose_flag == true || (!ENV['VERBOSE'].nil? && ENV['VERBOSE'] == 'true') || !(ENV['DEBUG'].nil?)
    @@verbose = true
  end
  return !!@@verbose
end