module GitBak::Misc

miscellaneous

Public Class Methods

die!(msg) click to toggle source

print msg to stderr and exit

# File lib/gitbak/misc.rb, line 31
def self.die! (msg)
  STDERR.puts msg; exit 1
end
exists?(path) click to toggle source

does file/dir or symlink exists?

# File lib/gitbak/misc.rb, line 36
def self.exists? (path)
  File.exist?(path) || File.symlink?(path)
end
prompt(prompt, hide = false) click to toggle source

prompt for line; optionally hide input

# File lib/gitbak/misc.rb, line 41
def self.prompt (prompt, hide = false)
  STDOUT.print prompt; STDOUT.flush
  (line = hide ? STDIN.noecho { |i| i.gets } .tap { STDOUT.puts }
               : STDIN.gets) && line.chomp
end
sys(cmd, *args) click to toggle source

execute command (unless noact); optionally verbose @see sys_

# File lib/gitbak/misc.rb, line 56
def self.sys (cmd, *args)                                   # {{{1
  opts = Hash === args.last ? args.pop : {}
  puts "$ #{ ([cmd] + args).join ' ' }" \
    if opts[:verbose] or opts[:noact]
  if opts[:noact]
    puts '(not actually doing anything)'
  else
    sys_ cmd, *args
  end
end
sys_(cmd, *args) click to toggle source

execute command @raise SysError on failure

# File lib/gitbak/misc.rb, line 49
def self.sys_ (cmd, *args)
  system [cmd, cmd], *args or raise SysError,
    "failed to run command #{ ([cmd] + args) } (#$?)"
end