26 #define ERR_OUT(e) std::cerr << e
42 value = (thrown ==
false);
52 assert(
make_dir(
"./test-rvm.dir/vault-1"));
53 assert(
make_dir(
"./test-rvm.dir/vault-2"));
54 assert(
make_dir(
"./test-rvm.dir/vault-3"));
55 assert(
make_dir(
"./test-rvm.dir/log.dir"));
56 assert(
make_dir(
"./test-rvm.dir/catalog.dir"));
58 out.open(
"./test-rvm.dir/file-1.conf");
59 assert(out.is_open());
60 out <<
"link-catalog-dir ./test-rvm.dir/catalog.dir" << std::endl;
61 out <<
"log-dir ./test-rvm.dir/log.dir" << std::endl;
62 out <<
"logging-level rsync" << std::endl;
63 out <<
"rsync-local-path " <<
LOCAL_RSYNC << std::endl;
64 out <<
"rsync-parallel 1" << std::endl;
65 out <<
"timestamp-resolution second" << std::endl;
66 out <<
"vault ./test-rvm.dir/vault-*" << std::endl;
67 out <<
"vault-overflow-behavior quit" << std::endl;
68 out <<
"vault-overflow-blocks 0" << std::endl;
69 out <<
"vault-overflow-inodes 0" << std::endl;
70 out <<
"vault-selection-behavior round-robin" << std::endl;
71 out <<
"<job>" << std::endl;
72 out <<
" jobname test-job" << std::endl;
73 out <<
" archive-path jobname/permutation" << std::endl;
74 out <<
" path " <<
check_cwd <<
"/" << std::endl;
75 out <<
" rsync-connection-type local" << std::endl;
76 out <<
" rsync-hardlink true" << std::endl;
77 out <<
" <rsync-options>" << std::endl;
78 out <<
" -a -v --progress --stats" << std::endl;
79 out <<
" --exclude '/.svn/'" << std::endl;
80 out <<
" --exclude '/.deps/'" << std::endl;
81 out <<
" --exclude '/autom4te.cache/'" << std::endl;
82 out <<
" --exclude '/test-rvm.dir/'" << std::endl;
83 out <<
" </rsync-options>" << std::endl;
84 out <<
" rsync-retry-count 3" << std::endl;
85 out <<
"</job>" << std::endl;
91 assert(system(
"rm -fr ./test-rvm.dir") == 0);
95 const std::string& path1,
96 const std::string& path2,
97 const std::string& file
123 std::string local_rsync;
128 if (local_rsync.size() == 0) {
129 char const * text[] = {
131 "NOTICE: Skipping this test",
133 "This test cannot be run because no local rsync binary was found during",
134 "configuration. This also means that RVM will be compiled with no",
135 "default value for the rsync-local-path command.",
137 "To change this, run the configure script with --with-rsync=<path>,",
138 "where <path> is the absolute path to the rsync binary.",
144 for (c = 0; text[c] != 0; ++c) {
145 std::cerr << text[c] << std::endl;
151 char const * argv[256] = { 0 };
157 argv[argc++] =
"<program>";
158 argv[argc++] =
"--archive";
204 +
static_cast<std::string
>(
"/")
206 +
static_cast<std::string
>(
".log")
212 +
static_cast<std::string
>(
"/")
214 +
static_cast<std::string
>(
".report")
219 assert(find(subdir.begin(), subdir.end(),
"AUTHORS") != subdir.end());
220 assert(find(subdir.begin(), subdir.end(),
"COPYING") != subdir.end());
221 assert(find(subdir.begin(), subdir.end(),
"INSTALL") != subdir.end());
222 assert(find(subdir.begin(), subdir.end(),
"Makefile") != subdir.end());
223 assert(find(subdir.begin(), subdir.end(),
"Makefile.in") != subdir.end());
224 assert(find(subdir.begin(), subdir.end(),
"README") != subdir.end());
225 assert(find(subdir.begin(), subdir.end(),
"archiver.cc") != subdir.end());
226 assert(find(subdir.begin(), subdir.end(),
"archiver.h") != subdir.end());
227 assert(find(subdir.begin(), subdir.end(),
"config.h") != subdir.end());
228 assert(find(subdir.begin(), subdir.end(),
"config.h.in") != subdir.end());
229 assert(find(subdir.begin(), subdir.end(),
"configure") != subdir.end());
230 assert(find(subdir.begin(), subdir.end(),
"error.cc") != subdir.end());
231 assert(find(subdir.begin(), subdir.end(),
"error.h") != subdir.end());
232 assert(find(subdir.begin(), subdir.end(),
"estring.cc") != subdir.end());
233 assert(find(subdir.begin(), subdir.end(),
"estring.h") != subdir.end());
234 assert(find(subdir.begin(), subdir.end(),
"exec.cc") != subdir.end());
235 assert(find(subdir.begin(), subdir.end(),
"exec.h") != subdir.end());
236 assert(find(subdir.begin(), subdir.end(),
"fs.cc") != subdir.end());
237 assert(find(subdir.begin(), subdir.end(),
"fs.h") != subdir.end());
238 assert(find(subdir.begin(), subdir.end(),
"help.cc") != subdir.end());
239 assert(find(subdir.begin(), subdir.end(),
"help.h") != subdir.end());
240 assert(find(subdir.begin(), subdir.end(),
"logger.cc") != subdir.end());
241 assert(find(subdir.begin(), subdir.end(),
"logger.h") != subdir.end());
242 assert(find(subdir.begin(), subdir.end(),
"make-test-fs-cc") != subdir.end());
243 assert(find(subdir.begin(), subdir.end(),
"rconfig.cc") != subdir.end());
244 assert(find(subdir.begin(), subdir.end(),
"rconfig.h") != subdir.end());
245 assert(find(subdir.begin(), subdir.end(),
"rmath.h") != subdir.end());
246 assert(find(subdir.begin(), subdir.end(),
"rvm.cc") != subdir.end());
247 assert(find(subdir.begin(), subdir.end(),
"rvm.1") != subdir.end());
248 assert(find(subdir.begin(), subdir.end(),
"rvm.1.in") != subdir.end());
249 assert(find(subdir.begin(), subdir.end(),
"test-rvm-001.cc") != subdir.end());
250 assert(find(subdir.begin(), subdir.end(),
"test-error.cc") != subdir.end());
251 assert(find(subdir.begin(), subdir.end(),
"test-estring.cc") != subdir.end());
252 assert(find(subdir.begin(), subdir.end(),
"test-exec.cc") != subdir.end());
253 assert(find(subdir.begin(), subdir.end(),
"test-fs-cwd.cc") != subdir.end());
254 assert(find(subdir.begin(), subdir.end(),
"test-fs.cc") != subdir.end());
256 assert(find(subdir.begin(), subdir.end(),
"test-logger.cc") != subdir.end());
258 assert(find(subdir.begin(), subdir.end(),
"test-rmath.cc") != subdir.end());
259 assert(find(subdir.begin(), subdir.end(),
"test-strfmt.cc") != subdir.end());
260 assert(find(subdir.begin(), subdir.end(),
"test-timer.cc") != subdir.end());
261 assert(find(subdir.begin(), subdir.end(),
"test-tstamp.cc") != subdir.end());
262 assert(find(subdir.begin(), subdir.end(),
"test-types.cc") != subdir.end());
263 assert(find(subdir.begin(), subdir.end(),
"timer.cc") != subdir.end());
264 assert(find(subdir.begin(), subdir.end(),
"timer.h") != subdir.end());
265 assert(find(subdir.begin(), subdir.end(),
"tstamp.cc") != subdir.end());
266 assert(find(subdir.begin(), subdir.end(),
"tstamp.h") != subdir.end());
267 assert(find(subdir.begin(), subdir.end(),
"types.h") != subdir.end());
268 assert(find(subdir.begin(), subdir.end(),
"vaulter.cc") != subdir.end());
269 assert(find(subdir.begin(), subdir.end(),
"vaulter.h") != subdir.end());
285 char const * argv[256] = { 0 };
291 argv[argc++] =
"<program>";
292 argv[argc++] =
"--archive";
336 assert(find(subdir.begin(), subdir.end(),
"AUTHORS") != subdir.end());
337 assert(find(subdir.begin(), subdir.end(),
"COPYING") != subdir.end());
338 assert(find(subdir.begin(), subdir.end(),
"INSTALL") != subdir.end());
339 assert(find(subdir.begin(), subdir.end(),
"Makefile") != subdir.end());
340 assert(find(subdir.begin(), subdir.end(),
"Makefile.in") != subdir.end());
341 assert(find(subdir.begin(), subdir.end(),
"README") != subdir.end());
342 assert(find(subdir.begin(), subdir.end(),
"archiver.cc") != subdir.end());
343 assert(find(subdir.begin(), subdir.end(),
"archiver.h") != subdir.end());
344 assert(find(subdir.begin(), subdir.end(),
"config.h") != subdir.end());
345 assert(find(subdir.begin(), subdir.end(),
"config.h.in") != subdir.end());
346 assert(find(subdir.begin(), subdir.end(),
"configure") != subdir.end());
347 assert(find(subdir.begin(), subdir.end(),
"error.cc") != subdir.end());
348 assert(find(subdir.begin(), subdir.end(),
"error.h") != subdir.end());
349 assert(find(subdir.begin(), subdir.end(),
"estring.cc") != subdir.end());
350 assert(find(subdir.begin(), subdir.end(),
"estring.h") != subdir.end());
351 assert(find(subdir.begin(), subdir.end(),
"exec.cc") != subdir.end());
352 assert(find(subdir.begin(), subdir.end(),
"exec.h") != subdir.end());
353 assert(find(subdir.begin(), subdir.end(),
"fs.cc") != subdir.end());
354 assert(find(subdir.begin(), subdir.end(),
"fs.h") != subdir.end());
355 assert(find(subdir.begin(), subdir.end(),
"help.cc") != subdir.end());
356 assert(find(subdir.begin(), subdir.end(),
"help.h") != subdir.end());
357 assert(find(subdir.begin(), subdir.end(),
"logger.cc") != subdir.end());
358 assert(find(subdir.begin(), subdir.end(),
"logger.h") != subdir.end());
359 assert(find(subdir.begin(), subdir.end(),
"make-test-fs-cc") != subdir.end());
360 assert(find(subdir.begin(), subdir.end(),
"rconfig.cc") != subdir.end());
361 assert(find(subdir.begin(), subdir.end(),
"rconfig.h") != subdir.end());
362 assert(find(subdir.begin(), subdir.end(),
"rmath.h") != subdir.end());
363 assert(find(subdir.begin(), subdir.end(),
"rvm.cc") != subdir.end());
364 assert(find(subdir.begin(), subdir.end(),
"rvm.1") != subdir.end());
365 assert(find(subdir.begin(), subdir.end(),
"rvm.1.in") != subdir.end());
366 assert(find(subdir.begin(), subdir.end(),
"test-rvm-001.cc") != subdir.end());
367 assert(find(subdir.begin(), subdir.end(),
"test-error.cc") != subdir.end());
368 assert(find(subdir.begin(), subdir.end(),
"test-estring.cc") != subdir.end());
369 assert(find(subdir.begin(), subdir.end(),
"test-exec.cc") != subdir.end());
370 assert(find(subdir.begin(), subdir.end(),
"test-fs-cwd.cc") != subdir.end());
371 assert(find(subdir.begin(), subdir.end(),
"test-fs.cc") != subdir.end());
373 assert(find(subdir.begin(), subdir.end(),
"test-logger.cc") != subdir.end());
375 assert(find(subdir.begin(), subdir.end(),
"test-rmath.cc") != subdir.end());
376 assert(find(subdir.begin(), subdir.end(),
"test-strfmt.cc") != subdir.end());
377 assert(find(subdir.begin(), subdir.end(),
"test-timer.cc") != subdir.end());
378 assert(find(subdir.begin(), subdir.end(),
"test-tstamp.cc") != subdir.end());
379 assert(find(subdir.begin(), subdir.end(),
"test-types.cc") != subdir.end());
380 assert(find(subdir.begin(), subdir.end(),
"timer.cc") != subdir.end());
381 assert(find(subdir.begin(), subdir.end(),
"timer.h") != subdir.end());
382 assert(find(subdir.begin(), subdir.end(),
"tstamp.cc") != subdir.end());
383 assert(find(subdir.begin(), subdir.end(),
"tstamp.h") != subdir.end());
384 assert(find(subdir.begin(), subdir.end(),
"types.h") != subdir.end());
385 assert(find(subdir.begin(), subdir.end(),
"vaulter.cc") != subdir.end());
386 assert(find(subdir.begin(), subdir.end(),
"vaulter.h") != subdir.end());
402 char const * argv[256] = { 0 };
408 argv[argc++] =
"<program>";
409 argv[argc++] =
"--archive";
453 assert(find(subdir.begin(), subdir.end(),
"AUTHORS") != subdir.end());
454 assert(find(subdir.begin(), subdir.end(),
"COPYING") != subdir.end());
455 assert(find(subdir.begin(), subdir.end(),
"INSTALL") != subdir.end());
456 assert(find(subdir.begin(), subdir.end(),
"Makefile") != subdir.end());
457 assert(find(subdir.begin(), subdir.end(),
"Makefile.in") != subdir.end());
458 assert(find(subdir.begin(), subdir.end(),
"README") != subdir.end());
459 assert(find(subdir.begin(), subdir.end(),
"archiver.cc") != subdir.end());
460 assert(find(subdir.begin(), subdir.end(),
"archiver.h") != subdir.end());
461 assert(find(subdir.begin(), subdir.end(),
"config.h") != subdir.end());
462 assert(find(subdir.begin(), subdir.end(),
"config.h.in") != subdir.end());
463 assert(find(subdir.begin(), subdir.end(),
"configure") != subdir.end());
464 assert(find(subdir.begin(), subdir.end(),
"error.cc") != subdir.end());
465 assert(find(subdir.begin(), subdir.end(),
"error.h") != subdir.end());
466 assert(find(subdir.begin(), subdir.end(),
"estring.cc") != subdir.end());
467 assert(find(subdir.begin(), subdir.end(),
"estring.h") != subdir.end());
468 assert(find(subdir.begin(), subdir.end(),
"exec.cc") != subdir.end());
469 assert(find(subdir.begin(), subdir.end(),
"exec.h") != subdir.end());
470 assert(find(subdir.begin(), subdir.end(),
"fs.cc") != subdir.end());
471 assert(find(subdir.begin(), subdir.end(),
"fs.h") != subdir.end());
472 assert(find(subdir.begin(), subdir.end(),
"help.cc") != subdir.end());
473 assert(find(subdir.begin(), subdir.end(),
"help.h") != subdir.end());
474 assert(find(subdir.begin(), subdir.end(),
"logger.cc") != subdir.end());
475 assert(find(subdir.begin(), subdir.end(),
"logger.h") != subdir.end());
476 assert(find(subdir.begin(), subdir.end(),
"make-test-fs-cc") != subdir.end());
477 assert(find(subdir.begin(), subdir.end(),
"rconfig.cc") != subdir.end());
478 assert(find(subdir.begin(), subdir.end(),
"rconfig.h") != subdir.end());
479 assert(find(subdir.begin(), subdir.end(),
"rmath.h") != subdir.end());
480 assert(find(subdir.begin(), subdir.end(),
"rvm.cc") != subdir.end());
481 assert(find(subdir.begin(), subdir.end(),
"rvm.1") != subdir.end());
482 assert(find(subdir.begin(), subdir.end(),
"rvm.1.in") != subdir.end());
483 assert(find(subdir.begin(), subdir.end(),
"test-rvm-001.cc") != subdir.end());
484 assert(find(subdir.begin(), subdir.end(),
"test-error.cc") != subdir.end());
485 assert(find(subdir.begin(), subdir.end(),
"test-estring.cc") != subdir.end());
486 assert(find(subdir.begin(), subdir.end(),
"test-exec.cc") != subdir.end());
487 assert(find(subdir.begin(), subdir.end(),
"test-fs-cwd.cc") != subdir.end());
488 assert(find(subdir.begin(), subdir.end(),
"test-fs.cc") != subdir.end());
490 assert(find(subdir.begin(), subdir.end(),
"test-logger.cc") != subdir.end());
492 assert(find(subdir.begin(), subdir.end(),
"test-rmath.cc") != subdir.end());
493 assert(find(subdir.begin(), subdir.end(),
"test-strfmt.cc") != subdir.end());
494 assert(find(subdir.begin(), subdir.end(),
"test-timer.cc") != subdir.end());
495 assert(find(subdir.begin(), subdir.end(),
"test-tstamp.cc") != subdir.end());
496 assert(find(subdir.begin(), subdir.end(),
"test-types.cc") != subdir.end());
497 assert(find(subdir.begin(), subdir.end(),
"timer.cc") != subdir.end());
498 assert(find(subdir.begin(), subdir.end(),
"timer.h") != subdir.end());
499 assert(find(subdir.begin(), subdir.end(),
"tstamp.cc") != subdir.end());
500 assert(find(subdir.begin(), subdir.end(),
"tstamp.h") != subdir.end());
501 assert(find(subdir.begin(), subdir.end(),
"types.h") != subdir.end());
502 assert(find(subdir.begin(), subdir.end(),
"vaulter.cc") != subdir.end());
503 assert(find(subdir.begin(), subdir.end(),
"vaulter.h") != subdir.end());
519 char const * argv[256] = { 0 };
525 argv[argc++] =
"<program>";
526 argv[argc++] =
"--archive";
572 if (subdir.size() == 0) {
573 std::string filename;
576 bool found_usage_error =
false;
577 char line_cstr[2048] = { 0 };
580 filename =
"./test-rvm.dir/log.dir/";
583 in.open(filename.c_str());
584 assert(in.is_open());
585 while (in.getline(line_cstr,2048)) {
587 if (line.find(
"Rsync exit code: [1]") != std::string::npos)
588 found_usage_error =
true;
589 for (c = 0; c < 2048; line_cstr[c++] = 0);
593 if (found_usage_error) {
595 <<
"*** NOTICE: One test has failed, the test that uses rsync with"
597 <<
" the --hard-links and --link-dest command line"
599 <<
" options. Rsync reported a syntax or usage error,"
601 <<
" which may indicate that this version of rsync is"
603 <<
" old enough to not have these options."
606 <<
" In order to be able to hard-link files that have"
608 <<
" not changed from one archive to the next, you"
610 <<
" will have to upgrade rsync."
614 assert(found_usage_error);
617 assert(find(subdir.begin(), subdir.end(),
"AUTHORS") != subdir.end());
618 assert(find(subdir.begin(), subdir.end(),
"COPYING") != subdir.end());
619 assert(find(subdir.begin(), subdir.end(),
"INSTALL") != subdir.end());
620 assert(find(subdir.begin(), subdir.end(),
"Makefile") != subdir.end());
621 assert(find(subdir.begin(), subdir.end(),
"Makefile.in") != subdir.end());
622 assert(find(subdir.begin(), subdir.end(),
"README") != subdir.end());
623 assert(find(subdir.begin(), subdir.end(),
"archiver.cc") != subdir.end());
624 assert(find(subdir.begin(), subdir.end(),
"archiver.h") != subdir.end());
625 assert(find(subdir.begin(), subdir.end(),
"config.h") != subdir.end());
626 assert(find(subdir.begin(), subdir.end(),
"config.h.in") != subdir.end());
627 assert(find(subdir.begin(), subdir.end(),
"configure") != subdir.end());
628 assert(find(subdir.begin(), subdir.end(),
"error.cc") != subdir.end());
629 assert(find(subdir.begin(), subdir.end(),
"error.h") != subdir.end());
630 assert(find(subdir.begin(), subdir.end(),
"estring.cc") != subdir.end());
631 assert(find(subdir.begin(), subdir.end(),
"estring.h") != subdir.end());
632 assert(find(subdir.begin(), subdir.end(),
"exec.cc") != subdir.end());
633 assert(find(subdir.begin(), subdir.end(),
"exec.h") != subdir.end());
634 assert(find(subdir.begin(), subdir.end(),
"fs.cc") != subdir.end());
635 assert(find(subdir.begin(), subdir.end(),
"fs.h") != subdir.end());
636 assert(find(subdir.begin(), subdir.end(),
"help.cc") != subdir.end());
637 assert(find(subdir.begin(), subdir.end(),
"help.h") != subdir.end());
638 assert(find(subdir.begin(), subdir.end(),
"logger.cc") != subdir.end());
639 assert(find(subdir.begin(), subdir.end(),
"logger.h") != subdir.end());
640 assert(find(subdir.begin(), subdir.end(),
"make-test-fs-cc") != subdir.end());
641 assert(find(subdir.begin(), subdir.end(),
"rconfig.cc") != subdir.end());
642 assert(find(subdir.begin(), subdir.end(),
"rconfig.h") != subdir.end());
643 assert(find(subdir.begin(), subdir.end(),
"rmath.h") != subdir.end());
644 assert(find(subdir.begin(), subdir.end(),
"rvm.cc") != subdir.end());
645 assert(find(subdir.begin(), subdir.end(),
"rvm.1") != subdir.end());
646 assert(find(subdir.begin(), subdir.end(),
"rvm.1.in") != subdir.end());
647 assert(find(subdir.begin(), subdir.end(),
"test-rvm-001.cc") != subdir.end());
648 assert(find(subdir.begin(), subdir.end(),
"test-error.cc") != subdir.end());
649 assert(find(subdir.begin(), subdir.end(),
"test-estring.cc") != subdir.end());
650 assert(find(subdir.begin(), subdir.end(),
"test-exec.cc") != subdir.end());
651 assert(find(subdir.begin(), subdir.end(),
"test-fs-cwd.cc") != subdir.end());
652 assert(find(subdir.begin(), subdir.end(),
"test-fs.cc") != subdir.end());
654 assert(find(subdir.begin(), subdir.end(),
"test-logger.cc") != subdir.end());
656 assert(find(subdir.begin(), subdir.end(),
"test-rmath.cc") != subdir.end());
657 assert(find(subdir.begin(), subdir.end(),
"test-strfmt.cc") != subdir.end());
658 assert(find(subdir.begin(), subdir.end(),
"test-timer.cc") != subdir.end());
659 assert(find(subdir.begin(), subdir.end(),
"test-tstamp.cc") != subdir.end());
660 assert(find(subdir.begin(), subdir.end(),
"test-types.cc") != subdir.end());
661 assert(find(subdir.begin(), subdir.end(),
"timer.cc") != subdir.end());
662 assert(find(subdir.begin(), subdir.end(),
"timer.h") != subdir.end());
663 assert(find(subdir.begin(), subdir.end(),
"tstamp.cc") != subdir.end());
664 assert(find(subdir.begin(), subdir.end(),
"tstamp.h") != subdir.end());
665 assert(find(subdir.begin(), subdir.end(),
"types.h") != subdir.end());
666 assert(find(subdir.begin(), subdir.end(),
"vaulter.cc") != subdir.end());
667 assert(find(subdir.begin(), subdir.end(),
"vaulter.h") != subdir.end());
675 static_cast<std::string>(
"./test-rvm.dir/catalog.dir/")
692 int main(
int argc,
char const * argv[])
void init(int argc, char const *argv[])
Initialize the configuration manager from rvm's command line options.
bool test_inodes(const std::string &path1, const std::string &path2, const std::string &file)
std::string reform_path(const std::string &a_path)
Reformat a path to remove double slashes.
void mk_dir(const std::string &a_path)
Create a directory.
void clear(void)
Clear the vault manager.
log_manager logger
The global log manager.
void path(const std::string a_path)
Retrieve information about a pathname.
void init(void)
Initialize the vault manager.
An extended string class.
void clear(void)
Clear the archive manager and clear the job list.
void catalog(void)
Create or update the catalog.
void clear(void)
Reset the catalog manager.
void default_file(const std::string &a_path)
Set the default configuration filename.
const class timestamp & timestamp(void) const
Return the timestamp of this instance of rvm.
const std::string & log_dir(void) const
Return the log-dir path.
const inode_type inode(void) const
Return the file inode.
archive_manager archiver
The global archive manager.
void set_total_time(const timer &a_class)
Report the overall RVM time.
void clear(void)
Reset configuration to default settings.
void clear(void)
Clear all values.
report_manager reporter
The global report manager.
bool exists(const std::string &a_path)
Return true if the file or directory exists.
void file_report(void)
Save report to a file.
void start(void)
Start (or restart) the timer.
catalog_manager cataloger
The global catalog manager.
const type & path(const std::string a_path, const std::string a_filter="*")
Return a vector of strings of a list of files in a subdirectory.
const std::string vault(void) const
Return the path to the selected vault.
int main(int argc, char const *argv[])
void clear(void)
Clear the log manager.
void init(void)
Initialize the log manager.
configuration_manager config
The global configuration manager instance.
Retrieve information about a file or directory.
void init(void)
Initialize the catalog manager.
void init(void)
Initialize the archive manager.
const jobs_type & jobs(void) const
Return a list of jobs.
const std::string str(void) const
Generate a string.
void archive(void)
Archive jobs.
bool make_dir(const std::string &path)
void stop(void)
Stop the timer.
Retrieve a list of files in a subdirectory that match a given wildcard filename.
void init(void)
Initialize.
vault_manager vaulter
The global vault manager.