From 01f65edf9594fdd811c5671a429b98ffff6f6523 Mon Sep 17 00:00:00 2001 From: Eric Wong Date: Sat, 19 Nov 2011 00:10:15 +0000 Subject: mog: add --no-clobber/-n option for 'cp' and 'tee' Overwriting data is bad, sometimes --- bin/mog | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/bin/mog b/bin/mog index 5b38bb4..f46e0e7 100755 --- a/bin/mog +++ b/bin/mog @@ -53,6 +53,9 @@ ARGV.options do |x| x.on('-e', 'True if key exists') { test[:e] = true } x.on('-r', '--raw', 'show raw big_info file information') { cat[:raw] = true } + x.on('-n', '--no-clobber', 'do not clobber existing key') do + cli_cfg[:noclobber] = true + end x.on('-C', '--class=s', 'class') { |klass| cli_cfg[:class] = klass } x.on('-d', '--domain=s', 'domain') { |domain| cli_cfg[:domain] = domain } @@ -137,6 +140,8 @@ begin filename = ARGV.shift or raise ArgumentError, ' ' dkey = ARGV.shift or raise ArgumentError, ' ' ARGV.shift and raise ArgumentError, ' ' + cfg[:noclobber] && mg.exist?(dkey) and + abort "`#{dkey}' already exists and -n/--no-clobber was specified" store_file_retry(mg, dkey, cfg[:class], filename) when 'cat' ARGV.empty? and raise ArgumentError, ' [ ...]' @@ -191,6 +196,8 @@ begin require 'tempfile' dkey = ARGV.shift or raise ArgumentError, '' ARGV.shift and raise ArgumentError, '' + cfg[:noclobber] && mg.exist?(dkey) and + abort "`#{dkey}' already exists and -n/--no-clobber was specified" skip_tee = File.stat('/dev/null') == $stdout.stat if chunk -- cgit v1.2.3-24-ge0c7