diff options
| author | Patrick J Cherry <patrick@bytemark.co.uk> | 2015-12-02 12:48:28 +0000 | 
|---|---|---|
| committer | Patrick J Cherry <patrick@bytemark.co.uk> | 2015-12-02 12:48:28 +0000 | 
| commit | 6bbf190a8a8e761bffc7e99ffb8357746dd9cad9 (patch) | |
| tree | 295fb3762bf2759f5a31de89da2707ca95e2ceec | |
| parent | 60b04be9d0f10866426ed1f1aa3718720676c866 (diff) | |
Updated argument parsing in the restore functionality of receive
* Verbose is now caught properly
* --all is caught and removed
| -rwxr-xr-x | bin/byteback-receive | 43 | 
1 files changed, 28 insertions, 15 deletions
| diff --git a/bin/byteback-receive b/bin/byteback-receive index 87d3071..0b6a5c5 100755 --- a/bin/byteback-receive +++ b/bin/byteback-receive @@ -23,27 +23,40 @@ byteback_root = ENV['HOME'] + '/' + ENV['BYTEBACK_HOST']  fatal("#{byteback_root} does not exist") unless File.directory?(byteback_root)  # -#  Force restores to be limited to the hostname we're connecting form +# Calling byteback-restore really needs rsync to restore the files.  # - - -  if (ARGV[0] == 'byteback-restore') +  # +  # Ignore the first arg +  # +  ARGV.shift +    args = ["rsync"] -  snapshot = nil  +  snapshot = nil +  verbose = false +  all = false + +  # +  # Mangle the arguments, and pull out any that are not-rsync compatible. +  # +  while(arg = ARGV.shift) +    case arg +      when "." +        break +      when /^-([^-]*v[^-]*|-verbose)$/ +        verbose = true +        args << arg +      when "--snapshot" +        snapshot = ARGV.shift +      when "--all" +        all = true +      else +        args << arg +    end +  end -  while((arg = ARGV.shift) != ".") -    break if arg.nil? -    verbose = arg if arg == "--verbose" -    if arg == "--snapshot" -      snapshot = ARGV.shift -    else -      args << arg -    end -  end -     restore = Byteback::Restore.new(byteback_root)    restore.snapshot = snapshot if snapshot    restore.find(Byteback::Restore.decode_args(ARGV)) | 
