{
if (getPreToPostStatus() & CREATED || getPreToPostStatus() & TYPE)
{
- if (getSnapper()->getRollbackProgressCallback())
- getSnapper()->getRollbackProgressCallback()->deleteInfo(name);
+ if (getSnapper()->getRollbackCallback())
+ getSnapper()->getRollbackCallback()->deleteInfo(name);
struct stat fs;
getLStat(getAbsolutePath(LOC_POST), fs);
if (getPreToPostStatus() & DELETED || getPreToPostStatus() & TYPE)
{
- if (getSnapper()->getRollbackProgressCallback())
- getSnapper()->getRollbackProgressCallback()->createInfo(name);
+ if (getSnapper()->getRollbackCallback())
+ getSnapper()->getRollbackCallback()->createInfo(name);
struct stat fs;
getLStat(getAbsolutePath(LOC_PRE), fs);
if (getPreToPostStatus() & (CONTENT | PERMISSIONS | USER | GROUP))
{
- if (getSnapper()->getRollbackProgressCallback())
- getSnapper()->getRollbackProgressCallback()->modifyInfo(name);
+ if (getSnapper()->getRollbackCallback())
+ getSnapper()->getRollbackCallback()->modifyInfo(name);
struct stat fs;
getLStat(getAbsolutePath(LOC_PRE), fs);
{
y2mil("begin rollback");
+ if (getSnapper()->getRollbackCallback())
+ getSnapper()->getRollbackCallback()->start();
+
for (vector<File>::reverse_iterator it = entries.rbegin(); it != entries.rend(); ++it)
{
if (it->getRollback())
}
}
+ if (getSnapper()->getRollbackCallback())
+ getSnapper()->getRollbackCallback()->stop();
+
y2mil("end rollback");
return true;
Snapper::Snapper(const string& config_name)
: config_name(config_name), config(NULL), subvolume("/"), snapshots(this),
- compare_callback(NULL), rollback_progress_callback(NULL)
+ compare_callback(NULL), rollback_callback(NULL)
{
y2mil("Snapper constructor");
y2mil("libsnapper version " VERSION);
};
- struct RollbackProgressCallback
+ struct RollbackCallback
{
- RollbackProgressCallback() {}
- virtual ~RollbackProgressCallback() {}
+ RollbackCallback() {}
+ virtual ~RollbackCallback() {}
+
+ virtual void start() = 0;
+ virtual void stop() = 0;
virtual void createInfo(const string& name) = 0;
virtual void modifyInfo(const string& name) = 0;
void setCompareCallback(CompareCallback* p) { compare_callback = p; }
CompareCallback* getCompareCallback() const { return compare_callback; }
- void setRollbackProgressCallback(RollbackProgressCallback* p) { rollback_progress_callback = p; }
- RollbackProgressCallback* getRollbackProgressCallback() const { return rollback_progress_callback; }
+ void setRollbackCallback(RollbackCallback* p) { rollback_callback = p; }
+ RollbackCallback* getRollbackCallback() const { return rollback_callback; }
const vector<string>& getIgnorePatterns() const { return ignore_patterns; }
Snapshots snapshots;
CompareCallback* compare_callback;
- RollbackProgressCallback* rollback_progress_callback;
+ RollbackCallback* rollback_callback;
};
struct CompareCallbackImpl : public CompareCallback
{
- void start() { cout << "comparing snapshots..." << flush; }
+ void start() { cout << "comparing snapshots..." << flush; }
void stop() { cout << " done" << endl; }
};
CompareCallbackImpl compare_callback_impl;
-struct RollbackProgressCallbackImpl : public RollbackProgressCallback
+struct RollbackCallbackImpl : public RollbackCallback
{
+ void start() { cout << "running rollback..." << endl; }
+ void stop() { cout << "rollback done" << endl; }
+
void createInfo(const string& name) { cout << "create " << name << endl; }
void modifyInfo(const string& name) { cout << "modify " << name << endl; }
void deleteInfo(const string& name) { cout << "delete " << name << endl; }
};
-RollbackProgressCallbackImpl rollback_progress_callback_impl;
+RollbackCallbackImpl rollback_callback_impl;
void
sh = createSnapper("testsuite");
sh->setCompareCallback(&compare_callback_impl);
- sh->setRollbackProgressCallback(&rollback_progress_callback_impl);
+ sh->setRollbackCallback(&rollback_callback_impl);
}
GetOpts getopts;
bool quiet = false;
+bool verbose = false;
string config_name = "root";
Snapper* sh = NULL;
cout << _(" Global options:") << endl
<< _("\t--quiet, -q\t\t\tSuppress normal output.") << endl
+ << _("\t--verbose, -v\t\t\tIncrease verbosity.") << endl
<< _("\t--table-style, -t <style>\tTable style (integer).") << endl
<< _("\t--config, -c <name>\t\tSet name of config to use.") << endl
<< endl;
struct CompareCallbackImpl : public CompareCallback
{
- void start() { cout << "comparing snapshots..." << flush; }
+ void start() { cout << "comparing snapshots..." << flush; }
void stop() { cout << " done" << endl; }
};
CompareCallbackImpl compare_callback_impl;
-struct RollbackProgressCallbackImpl : public RollbackProgressCallback
+struct RollbackCallbackImpl : public RollbackCallback
{
- void createInfo(const string& name) { cout << "create " << name << endl; }
- void modifyInfo(const string& name) { cout << "modify " << name << endl; }
- void deleteInfo(const string& name) { cout << "delete " << name << endl; }
+ void start() { if (!verbose) cout << "running rollback..." << flush; }
+ void stop() { if (!verbose) cout << " done" << endl; }
+
+ void createInfo(const string& name) { if (verbose) cout << "create " << name << endl; }
+ void modifyInfo(const string& name) { if (verbose) cout << "modify " << name << endl; }
+ void deleteInfo(const string& name) { if (verbose) cout << "delete " << name << endl; }
};
-RollbackProgressCallbackImpl rollback_progress_callback_impl;
+RollbackCallbackImpl rollback_callback_impl;
int
const struct option options[] = {
{ "quiet", no_argument, 0, 'q' },
+ { "verbose", no_argument, 0, 'v' },
{ "table-style", required_argument, 0, 't' },
{ "config", required_argument, 0, 'c' },
{ 0, 0, 0, 0 }
if ((opt = opts.find("quiet")) != opts.end())
quiet = true;
+ if ((opt = opts.find("verbose")) != opts.end())
+ verbose = true;
+
if ((opt = opts.find("table-style")) != opts.end())
{
unsigned int s;
if (!quiet)
{
sh->setCompareCallback(&compare_callback_impl);
- sh->setRollbackProgressCallback(&rollback_progress_callback_impl);
+ sh->setRollbackCallback(&rollback_callback_impl);
}
(*cmd->second)();