summaryrefslogtreecommitdiff
path: root/bin/bbackupctl
diff options
context:
space:
mode:
Diffstat (limited to 'bin/bbackupctl')
-rw-r--r--bin/bbackupctl/bbackupctl.cpp75
1 files changed, 37 insertions, 38 deletions
diff --git a/bin/bbackupctl/bbackupctl.cpp b/bin/bbackupctl/bbackupctl.cpp
index 69dd7215..becb1fcf 100644
--- a/bin/bbackupctl/bbackupctl.cpp
+++ b/bin/bbackupctl/bbackupctl.cpp
@@ -11,13 +11,12 @@
#include <cstdio>
#include <cstdlib>
+#include <iostream>
#ifdef HAVE_UNISTD_H
#include <unistd.h>
#endif
-#include <cstdlib>
-
#include "box_getopt.h"
#include "MainHelper.h"
#include "BoxPortsAndFiles.h"
@@ -41,9 +40,14 @@ enum Command
NoCommand,
};
-void PrintUsageAndExit()
+void PrintUsageAndExit(int ret)
{
- printf("Usage: bbackupctl [-q] [-c config_file] <command>\n"
+ std::cout <<
+ "Usage: bbackupctl [options] <command>\n"
+ "\n"
+ "Options:\n" <<
+ Logging::OptionParser::GetUsageString() <<
+ "\n"
"Commands are:\n"
" status -- report daemon status without changing anything\n"
" sync -- start a synchronisation (backup) run now\n"
@@ -54,8 +58,8 @@ void PrintUsageAndExit()
" wait-for-sync -- wait until the next sync starts, then exit\n"
" wait-for-end -- wait until the next sync finishes, then exit\n"
" sync-and-wait -- start sync, wait until it finishes, then exit\n"
- );
- exit(1);
+ ;
+ exit(ret);
}
int main(int argc, const char *argv[])
@@ -72,28 +76,27 @@ int main(int argc, const char *argv[])
// Filename for configuration file?
std::string configFilename = BOX_GET_DEFAULT_BBACKUPD_CONFIG_FILE;
- // Quiet?
- bool quiet = false;
-
// See if there's another entry on the command line
int c;
- while((c = getopt(argc, (char * const *)argv, "qc:l:")) != -1)
+ std::string options("c:");
+ options += Logging::OptionParser::GetOptionString();
+ Logging::OptionParser LogLevel;
+
+ while((c = getopt(argc, (char * const *)argv, options.c_str())) != -1)
{
switch(c)
{
- case 'q':
- // Quiet mode
- quiet = true;
- break;
-
case 'c':
// store argument
configFilename = optarg;
break;
- case '?':
default:
- PrintUsageAndExit();
+ int ret = LogLevel.ProcessOption(c);
+ if(ret != 0)
+ {
+ PrintUsageAndExit(ret);
+ }
}
}
// Adjust arguments
@@ -103,11 +106,13 @@ int main(int argc, const char *argv[])
// Check there's a command
if(argc != 1)
{
- PrintUsageAndExit();
+ PrintUsageAndExit(2);
}
+ Logging::FilterConsole(LogLevel.GetCurrentLevel());
+
// Read in the configuration file
- if(!quiet) BOX_NOTICE("Using configuration file " << configFilename);
+ BOX_INFO("Using configuration file " << configFilename);
std::string errs;
std::auto_ptr<Configuration> config(
@@ -191,16 +196,13 @@ int main(int argc, const char *argv[])
return 1;
}
// Print summary?
- if(!quiet)
- {
- BOX_INFO("Daemon configuration summary:\n"
- " AutomaticBackup = " <<
- (autoBackup?"true":"false") << "\n"
- " UpdateStoreInterval = " << updateStoreInterval <<
- " seconds\n"
- " MinimumFileAge = " << minimumFileAge << " seconds\n"
- " MaxUploadWait = " << maxUploadWait << " seconds");
- }
+ BOX_TRACE("Daemon configuration summary:\n"
+ " AutomaticBackup = " <<
+ (autoBackup?"true":"false") << "\n"
+ " UpdateStoreInterval = " << updateStoreInterval <<
+ " seconds\n"
+ " MinimumFileAge = " << minimumFileAge << " seconds\n"
+ " MaxUploadWait = " << maxUploadWait << " seconds");
std::string stateLine;
if(!getLine.GetLine(stateLine) || getLine.IsEOF())
@@ -318,14 +320,14 @@ int main(int argc, const char *argv[])
{
if(line == "start-sync")
{
- if (!quiet) BOX_INFO("Sync started...");
+ BOX_TRACE("Sync started...");
syncIsRunning = true;
}
else if(line == "finish-sync")
{
if (syncIsRunning)
{
- if (!quiet) BOX_INFO("Sync finished.");
+ BOX_TRACE("Sync finished.");
// Send a quit command to finish nicely
connection.Write("quit\n", 5);
@@ -334,7 +336,7 @@ int main(int argc, const char *argv[])
}
else
{
- if (!quiet) BOX_INFO("Previous sync finished.");
+ BOX_TRACE("Previous sync finished.");
}
// daemon must still be busy
}
@@ -346,12 +348,9 @@ int main(int argc, const char *argv[])
// Is this an OK or error line?
if(line == "ok")
{
- if(!quiet)
- {
- BOX_INFO("Control command "
- "sent: " <<
- commandName);
- }
+ BOX_TRACE("Control command "
+ "sent: " <<
+ commandName);
finished = true;
}
else if(line == "error")