TRUCKLE_RESUME_FILE added. --tag has higher prior than --resume-file. retry (resume --retry-failed) added.
This commit is contained in:
parent
b116a14252
commit
77dec1b180
25
truckle
25
truckle
|
@ -326,14 +326,15 @@ Most commands are like by cave.
|
||||||
- `uninstall` is resumable and like `cave uninstall -x`.
|
- `uninstall` is resumable and like `cave uninstall -x`.
|
||||||
- `fix-linkage` is pagered and resumable.
|
- `fix-linkage` is pagered and resumable.
|
||||||
- `do` and `resume` are resumable and will resume or execute the last command.
|
- `do` and `resume` are resumable and will resume or execute the last command.
|
||||||
|
- `retry` are resumable, will resume or execute the last command and will retry the last failed job.
|
||||||
|
|
||||||
Resumable
|
Resumable
|
||||||
=========
|
=========
|
||||||
|
|
||||||
You do not need to set a resume-file. #{cmd} will determine it automaticaly. First, you can give a first argument for tagging. Tag must be numerical!
|
You do not need to set a resume-file. #{cmd} will determine it automaticaly. First, you can give a first argument for tagging. Tag must be numerical!
|
||||||
|
|
||||||
#{cmd} 321 resolve netcat6
|
#{cmd} -t 321 resolve netcat6
|
||||||
#{cmd} 321 do
|
#{cmd} -t 321 do
|
||||||
|
|
||||||
If you do not give a tag, #{cmd} will use the actual terminal-device-number. If it isn't possible to determine terminal, the parent-pid will be used.
|
If you do not give a tag, #{cmd} will use the actual terminal-device-number. If it isn't possible to determine terminal, the parent-pid will be used.
|
||||||
|
|
||||||
|
@ -350,10 +351,12 @@ Some commands are not displayed by a pager, but will execute:
|
||||||
truckle install WHAT # cave -cy resolve -x WHAT
|
truckle install WHAT # cave -cy resolve -x WHAT
|
||||||
truckle uninstall WHAT # cave -cy uninstall -x WHAT
|
truckle uninstall WHAT # cave -cy uninstall -x WHAT
|
||||||
|
|
||||||
«do» and «resume» are special, to execute the last command:
|
«do», «resume» and «retry» are special, to execute the last command:
|
||||||
|
|
||||||
truckle resume # | do # cave resume
|
truckle resume # | do # cave resume
|
||||||
trdo # | tresume # shortcuts
|
trdo # | tresume # shortcuts
|
||||||
|
truckle retry # like resume but --retry-failed
|
||||||
|
tretry # shortcut
|
||||||
EOF
|
EOF
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@ -381,6 +384,7 @@ EOF
|
||||||
cmds.on :uninstall, &sudod {|cmd, *argv| cave.resumable!.uninstall( '-x', *argv).() }
|
cmds.on :uninstall, &sudod {|cmd, *argv| cave.resumable!.uninstall( '-x', *argv).() }
|
||||||
|
|
||||||
cmds.on :do, :resume, &sudod {|cmd, *args| cave.resumable!.resume( *args).() }
|
cmds.on :do, :resume, &sudod {|cmd, *args| cave.resumable!.resume( *args).() }
|
||||||
|
cmds.on :retry, &sudod {|cmd, *args| cave.resumable!.resume( '--retry-failed', *args).() }
|
||||||
|
|
||||||
cmds.on '--list-commands', &pagered { puts cmds.map {|k,v| k } }
|
cmds.on '--list-commands', &pagered { puts cmds.map {|k,v| k } }
|
||||||
end
|
end
|
||||||
|
@ -418,7 +422,6 @@ EOF
|
||||||
when '-s' then options[:sudo] = on_off_auto[arg]
|
when '-s' then options[:sudo] = on_off_auto[arg]
|
||||||
else opts.terminate
|
else opts.terminate
|
||||||
end
|
end
|
||||||
''
|
|
||||||
end
|
end
|
||||||
options
|
options
|
||||||
end
|
end
|
||||||
|
@ -426,6 +429,7 @@ EOF
|
||||||
def setup_env options
|
def setup_env options
|
||||||
options[:dummy] = true if %w[1 true yes].include?( ENV['DUMMY'].to_s.downcase)
|
options[:dummy] = true if %w[1 true yes].include?( ENV['DUMMY'].to_s.downcase)
|
||||||
options[:sudo] = false if %w[1 true yes].include?( ENV['NOSUDO'].to_s.downcase)
|
options[:sudo] = false if %w[1 true yes].include?( ENV['NOSUDO'].to_s.downcase)
|
||||||
|
options[:resume_file] = ENV['TRUCKLE_RESUME_FILE'] unless '' == ENV['TRUCKLE_RESUME_FILE'].to_s
|
||||||
options[:tty] = true if STDOUT.tty?
|
options[:tty] = true if STDOUT.tty?
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@ -438,16 +442,16 @@ EOF
|
||||||
@nopager = true unless on_off_auto.( options[:pager]) or options[:tty]
|
@nopager = true unless on_off_auto.( options[:pager]) or options[:tty]
|
||||||
@nosudo = true unless on_off_auto.( options[:sudo])
|
@nosudo = true unless on_off_auto.( options[:sudo])
|
||||||
|
|
||||||
resumefilesuffix = if options[:resume_file]
|
options[:resume_file] = if options[:tag]
|
||||||
|
"/tmp/truckle-resume-tag-#{options[:tag]}"
|
||||||
|
elsif options[:resume_file]
|
||||||
options[:resume_file]
|
options[:resume_file]
|
||||||
elsif options[:tag]
|
|
||||||
"tag-#{options[:tag]}"
|
|
||||||
elsif STDOUT.tty? and STDIN.tty? and STDOUT.stat.rdev == STDIN.stat.rdev
|
elsif STDOUT.tty? and STDIN.tty? and STDOUT.stat.rdev == STDIN.stat.rdev
|
||||||
"dev-#{STDOUT.stat.rdev}"
|
"/tmp/truckle-resume-dev-#{STDOUT.stat.rdev}"
|
||||||
else
|
else
|
||||||
"ppd-#{Process.ppid}"
|
"/tmp/truckle-resume-ppd-#{Process.ppid}"
|
||||||
end
|
end
|
||||||
@cave.resume_file = options[:resume_file] || "/tmp/truckle-resume-#{resumefilesuffix}"
|
@cave.resume_file = options[:resume_file]
|
||||||
end
|
end
|
||||||
|
|
||||||
def setup_recall options
|
def setup_recall options
|
||||||
|
@ -501,6 +505,7 @@ class Shortcut
|
||||||
case exe.to_sym
|
case exe.to_sym
|
||||||
when :trdo then exec :truckle, :do, *ARGV
|
when :trdo then exec :truckle, :do, *ARGV
|
||||||
when :tresume then exec :truckle, :resume, *ARGV
|
when :tresume then exec :truckle, :resume, *ARGV
|
||||||
|
when :tretry then exec :truckle, :retry, *ARGV
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
alias call run
|
alias call run
|
||||||
|
|
Loading…
Reference in a new issue