forked from paul/rubberin
Clean up cruft on quit.
This commit is contained in:
parent
654a04f401
commit
2d4227a362
21
rubberin
21
rubberin
|
@ -71,7 +71,7 @@ def compile(infile, mode)
|
|||
ret = system "rubber --inplace #{mode_opt} #{params} #{infile} 2> #{err_file}"
|
||||
File.open(err_file) { |file| puts file.read }
|
||||
# Remove the output save file if compile was succesful.
|
||||
File.unlink(err_file) if ret
|
||||
clean(infile) if ret
|
||||
end
|
||||
|
||||
# Start the right viewer based on the mode.
|
||||
|
@ -87,6 +87,13 @@ def view(infile, mode)
|
|||
end
|
||||
end
|
||||
|
||||
# Clean up cruft related to compilation of the input file.
|
||||
def clean(infile)
|
||||
err_file = infile.with_extname('err')
|
||||
File.unlink(err_file) if err_file.exist?
|
||||
system "rubber --clean --inplace #{infile}"
|
||||
end
|
||||
|
||||
# Reload the right viewer based on the mode.
|
||||
def reload(infile, mode)
|
||||
case mode
|
||||
|
@ -159,10 +166,18 @@ view(infile, mode) if not viewer_pid
|
|||
|
||||
# Handle signals.
|
||||
["INT", "TERM", "QUIT"].each do |sig|
|
||||
Signal.trap(sig) { Process.kill(sig, viewer_pid); exit }
|
||||
Signal.trap(sig) do
|
||||
Process.kill(sig, viewer_pid)
|
||||
clean(infile)
|
||||
exit
|
||||
end
|
||||
end
|
||||
# If xdvi exits, this program should exit too.
|
||||
Signal.trap("CLD") { puts "#{Program}: viewer exited, so will I!"; exit }
|
||||
Signal.trap("CLD") do
|
||||
puts "#{Program}: viewer exited, so will I!"
|
||||
clean(infile)
|
||||
exit
|
||||
end
|
||||
|
||||
## Main event loop
|
||||
|
||||
|
|
Loading…
Reference in New Issue