34 lines
766 B
Ruby
34 lines
766 B
Ruby
|
#!/usr/bin/env ruby
|
||
|
# vim: set noet sw=2 ts=2 sts=2:
|
||
|
|
||
|
require 'deduperemoverb'
|
||
|
require 'ostruct'
|
||
|
require 'logger'
|
||
|
|
||
|
$logger = Logger.new STDERR
|
||
|
$logger.formatter =
|
||
|
proc do |severity, datetime, progname, message|
|
||
|
sprintf "%s %s %s\n", datetime.strftime( '%H:%M:%S.%6N'), severity[0], message
|
||
|
end
|
||
|
|
||
|
begin
|
||
|
raise "Argument 0: Database expected" if ARGV.empty?
|
||
|
dbfile = Pathname.new ARGV[0]
|
||
|
raise "Argument 0: Database missing: #{dbfile}" unless dbfile.exist?
|
||
|
tempfile = Pathname.new("/run/user/#{Process.uid}").join dbfile.basename
|
||
|
dr = Duperemove.new dbfile, tempfile
|
||
|
dr.run ARGV[1..-1]
|
||
|
dr.finish
|
||
|
|
||
|
rescue SystemExit
|
||
|
raise
|
||
|
|
||
|
rescue Interrupt
|
||
|
$logger.info "was interrupted"
|
||
|
exit 1
|
||
|
|
||
|
rescue
|
||
|
$logger.fatal "#$! (#{$!.class})\n#{$!.backtrace.join "\n\t"}"
|
||
|
|
||
|
end
|