Forward compatibility: use dencli, because it will be used in future versions. prevents cli-changes in future. Errnos load only ones. version 0.0.2
parent
01b3ebe04f
commit
e8273e2aae
@ -0,0 +1,51 @@ |
||||
#!/usr/bin/env ruby |
||||
# vim: set noet sw=2 ts=2 sts=2: |
||||
|
||||
require 'dencli' |
||||
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 |
||||
cli = DenCli.new File.basename($0), <<EOF |
||||
Deduplicates extents, which were already registered by `duperemove`. |
||||
This tool does not provide scanning, yet. |
||||
If PATHx given, only extents of files which matches this pattern and equal extents will be deduplicated. So, non-equal extents of not listed paths will be ignored. |
||||
EOF |
||||
|
||||
cli.cmd :help, '(Help)', aliases: [nil, '-h', '--help'], &lambda {|cmd=nil| |
||||
STDERR.puts cli.help(cmd) |
||||
exit 1 |
||||
} |
||||
|
||||
cli.cmd( :dedupe, 'deduplicates files', &lambda {|db, *dirs, tempdb: nil| |
||||
dbfile = Pathname.new db |
||||
raise DenCli::UsageError, "Argument 0: Database missing: #{dbfile}" unless dbfile.exist? |
||||
tempdb ||= Pathname.new("/run/user/#{Process.uid}").join dbfile.basename |
||||
dr = Duperemove.new dbfile, tempdb |
||||
dr.run dirs |
||||
dr.finish |
||||
}).opt( :tempdb, '--tempdb=FILE', '-t', "Use given [empty] database as temporary database. (default in /run/user/...)") |
||||
|
||||
cli.call *ARGV |
||||
|
||||
rescue DenCli::UsageError |
||||
$logger.fatal "#$!" |
||||
|
||||
rescue SystemExit |
||||
raise |
||||
|
||||
rescue Interrupt |
||||
$logger.info "was interrupted" |
||||
exit 1 |
||||
|
||||
rescue |
||||
$logger.fatal "#$! (#{$!.class})\n#{$!.backtrace.join "\n\t"}" |
||||
|
||||
end |
@ -1,33 +0,0 @@ |
||||
#!/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 |
@ -0,0 +1,3 @@ |
||||
class Duperemove |
||||
VERSION = '0.0.2' |
||||
end |
Loading…
Reference in new issue