diff options
author | Chris Wilson <chris+github@qwirx.com> | 2010-09-22 21:12:02 +0000 |
---|---|---|
committer | Chris Wilson <chris+github@qwirx.com> | 2010-09-22 21:12:02 +0000 |
commit | 0529b414696b73b0b922da59c03b267d676e35b9 (patch) | |
tree | ebc4c9136bcb0525ecb8f75ff3e6a89a368ec529 /bin/bbackupquery/BackupQueries.cpp | |
parent | b059d5ef03a1b68938e82097723f282d54c1c6f6 (diff) |
Allow restoring directories with a single argument, using the remote name
as the local destination name also.
Diffstat (limited to 'bin/bbackupquery/BackupQueries.cpp')
-rw-r--r-- | bin/bbackupquery/BackupQueries.cpp | 29 |
1 files changed, 21 insertions, 8 deletions
diff --git a/bin/bbackupquery/BackupQueries.cpp b/bin/bbackupquery/BackupQueries.cpp index c7dd82c2..002a9ec4 100644 --- a/bin/bbackupquery/BackupQueries.cpp +++ b/bin/bbackupquery/BackupQueries.cpp @@ -1951,9 +1951,10 @@ void BackupQueries::Compare(int64_t DirID, const std::string &rStoreDir, void BackupQueries::CommandRestore(const std::vector<std::string> &args, const bool *opts) { // Check arguments - if(args.size() != 2) + if(args.size() < 1 || args.size() > 2) { - BOX_ERROR("Incorrect usage. restore [-drif] <remote-name> <local-name>"); + BOX_ERROR("Incorrect usage. restore [-drif] <remote-name> " + "[<local-name>]"); return; } @@ -1994,18 +1995,30 @@ void BackupQueries::CommandRestore(const std::vector<std::string> &args, const b BOX_ERROR("Directory '" << args[0] << "' not found on server"); return; } + if(dirID == BackupProtocolClientListDirectory::RootDirectory) { BOX_ERROR("Cannot restore the root directory -- restore locations individually."); return; } - -#ifdef WIN32 + std::string localName; - if(!ConvertConsoleToUtf8(args[1].c_str(), localName)) return; -#else - std::string localName(args[1]); -#endif + + if(args.size() == 2) + { + #ifdef WIN32 + if(!ConvertConsoleToUtf8(args[1].c_str(), localName)) + { + return; + } + #else + localName = args[1]; + #endif + } + else + { + localName = args[0]; + } // Go and restore... int result; |