Class: Sys

Inherits:
Object
  • Object
show all
Defined in:
lib/sub/sys.rb

Defined Under Namespace

Modules: Client

Constant Summary collapse

@@instance =
Sys.new

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(verbosity = NORMAL) ⇒ Sys

Returns a new instance of Sys.



42
43
44
# File 'lib/sub/sys.rb', line 42

def initialize(verbosity = NORMAL)
  @verbosity = verbosity
end

Instance Attribute Details

#verbosityObject

Returns the value of attribute verbosity.



40
41
42
# File 'lib/sub/sys.rb', line 40

def verbosity
  @verbosity
end

Class Method Details

.instanceObject



36
37
38
# File 'lib/sub/sys.rb', line 36

def self.instance
  @@instance
end

Instance Method Details

#run(cmd, return_output = false) ⇒ Object



58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
# File 'lib/sub/sys.rb', line 58

def run(cmd, return_output = false)
  val = nil
  say("\t#{cmd}") if verbosity == VERBOSE
  if (return_output)
    val = `#{cmd}`
  else
    cmd += ">/dev/null"if verbosity == QUIET
    system(cmd)
  end
  unless $?.success?
    puts caller.join("\n\t")
    raise "Failure: '#{cmd}' returned #{$?.exitstatus}"
  end
  val
end

#say(msg) ⇒ Object



46
47
48
# File 'lib/sub/sys.rb', line 46

def say(msg)
  puts msg if verbosity > QUIET
end

#svn(cmd, return_output = false) ⇒ Object



50
51
52
53
54
55
56
# File 'lib/sub/sys.rb', line 50

def svn(cmd, return_output = false)
  svncmd = "svn"
  svncmd += " --quiet" if (cmd =~ /^(up|co)/ && verbosity == QUIET)
  output = run("#{svncmd} #{cmd}", return_output)
  puts output if output && verbosity == VERBOSE
  output
end