Opts removed. tidy up
This commit is contained in:
parent
8a3ed682e9
commit
b116a14252
55
truckle
55
truckle
|
@ -201,50 +201,6 @@ class RunCave
|
||||||
alias call run_exit
|
alias call run_exit
|
||||||
end
|
end
|
||||||
|
|
||||||
class Opts < Hash
|
|
||||||
class UnknownArgument < Exception
|
|
||||||
def initialize arg
|
|
||||||
super "Unknown argument: #{arg}"
|
|
||||||
end
|
|
||||||
end
|
|
||||||
class ArgumentExpected < Exception
|
|
||||||
def initialize arg
|
|
||||||
super "Argument expected for: #{arg}"
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
def opt *names, &exe
|
|
||||||
names.each do |name|
|
|
||||||
self[name.to_s.to_sym] = [exe, false]
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
def opt_arg *names, &exe
|
|
||||||
names.each do |name|
|
|
||||||
self[name.to_s.to_sym] = [exe, true]
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
def parse *argv
|
|
||||||
get_arg = lambda {|e| argv.shift; e.call argv[0] }
|
|
||||||
argv = argv.dup
|
|
||||||
until argv.empty?
|
|
||||||
opt = argv[0]
|
|
||||||
case opt
|
|
||||||
when /^(?:(-[^-])=?|(--[^=]+)=)(.*)$/
|
|
||||||
opt, arg = $1||$2, $3
|
|
||||||
exe, need_arg = (self[opt] or return( argv))
|
|
||||||
need_arg ? exe( opt, arg) : raise( ArgumentExpected, opt)
|
|
||||||
when /^(?:-[^-]|--[^=]+)$/
|
|
||||||
exe, need_arg = (self[opt] or return( argv))
|
|
||||||
need_arg ? exe( opt, get_arg.()) : exe
|
|
||||||
else
|
|
||||||
return argv
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
# Truckle
|
# Truckle
|
||||||
# =======
|
# =======
|
||||||
#
|
#
|
||||||
|
@ -418,7 +374,9 @@ EOF
|
||||||
cave.()
|
cave.()
|
||||||
}
|
}
|
||||||
cmds.on :remove, &sudo_pagered {|cmd, *args| cave.resumable!.uninstall(*args).()}
|
cmds.on :remove, &sudo_pagered {|cmd, *args| cave.resumable!.uninstall(*args).()}
|
||||||
cmds.on :upgrade, &sudo_pagered {|cmd, *args| cave.resumable!.resolve( '-c', :world, *args).() }
|
cmds.on :upgrade, &sudo_pagered {|cmd, *args|
|
||||||
|
cave.resumable!.resolve( '-c', :world, *args).()
|
||||||
|
}
|
||||||
cmds.on :install, &sudod {|cmd, *argv| cave.resumable!.resolve( '-x', *argv).() }
|
cmds.on :install, &sudod {|cmd, *argv| cave.resumable!.resolve( '-x', *argv).() }
|
||||||
cmds.on :uninstall, &sudod {|cmd, *argv| cave.resumable!.uninstall( '-x', *argv).() }
|
cmds.on :uninstall, &sudod {|cmd, *argv| cave.resumable!.uninstall( '-x', *argv).() }
|
||||||
|
|
||||||
|
@ -493,7 +451,12 @@ EOF
|
||||||
end
|
end
|
||||||
|
|
||||||
def setup_recall options
|
def setup_recall options
|
||||||
on_off_auto = lambda {|n,x| case x when true then [n, 'on'] when false then [n, 'off'] end }
|
on_off_auto = lambda {|n,x|
|
||||||
|
case x
|
||||||
|
when true then [n, 'on']
|
||||||
|
when false then [n, 'off']
|
||||||
|
end
|
||||||
|
}
|
||||||
param = lambda {|n,x| n if x }
|
param = lambda {|n,x| n if x }
|
||||||
|
|
||||||
@params = [
|
@params = [
|
||||||
|
|
Loading…
Reference in a new issue