22 #define ERR_OUT(e) std::cerr << e;
27 char const * argv[256] = { 0 };
30 std::vector<std::string> opt_vec;
32 argv[argc++] =
"<program>";
33 argv[argc++] =
"--archive";
61 assert(
config.
jobs()[0].groupname ==
"group-A");
63 assert(
config.
jobs()[0].rsync_behavior.default_value()
65 assert(
config.
jobs()[0].rsync_behavior.map_value().size() == 9);
77 assert(
config.
jobs()[0].rsync_hardlink ==
true);
78 assert(
config.
jobs()[0].rsync_multi_hardlink ==
false);
79 assert(
config.
jobs()[0].rsync_multi_hardlink_max == 20);
80 assert(
config.
jobs()[0].rsync_options ==
"--some -options for-rsync some more \"options for\" the\\trsync\\ program");
82 opt_vec =
config.
jobs()[0].generate_rsync_options_vector();
83 assert(opt_vec[0] ==
"--some");
84 assert(opt_vec[1] ==
"-options");
85 assert(opt_vec[2] ==
"for-rsync");
86 assert(opt_vec[3] ==
"some");
87 assert(opt_vec[4] ==
"more");
88 assert(opt_vec[5] ==
"options for");
89 assert(opt_vec[6] ==
"the\trsync program");
90 assert(opt_vec.size() == 7);
91 assert(
config.
jobs()[0].rsync_remote_user ==
"");
92 assert(
config.
jobs()[0].rsync_remote_port == 0);
94 assert(
config.
jobs()[1].groupname ==
"group-A");
96 assert(
config.
jobs()[1].rsync_behavior.default_value()
98 assert(
config.
jobs()[1].rsync_behavior.map_value().size() == 1);
99 assert(
config.
jobs()[1].rsync_behavior.map_value().find(5)->second
102 assert(
config.
jobs()[1].rsync_hardlink ==
false);
103 assert(
config.
jobs()[1].rsync_remote_user ==
"alice");
104 assert(
config.
jobs()[1].rsync_remote_port == 4338);
105 assert(
config.
jobs()[2].hostname ==
"host-C");
106 assert(
config.
jobs()[2].rsync_hardlink ==
true);
107 assert(
config.
jobs()[2].rsync_multi_hardlink ==
true);
108 assert(
config.
jobs()[2].rsync_multi_hardlink_max == 7);
110 assert(
config.
jobs()[3].rsync_options ==
"--some -options for-rsync -e \"-i foo\"");
112 opt_vec =
config.
jobs()[3].generate_rsync_options_vector();
113 assert(opt_vec[0] ==
"--some");
114 assert(opt_vec[1] ==
"-options");
115 assert(opt_vec[2] ==
"for-rsync");
116 assert(opt_vec[3] ==
"-e");
117 assert(opt_vec[4] ==
"-i foo");
119 assert(
config.
jobs()[4].rsync_options ==
"--some -options for-rsync --rsh=\"/usr/bin/rsh -i foo\"");
121 opt_vec =
config.
jobs()[4].generate_rsync_options_vector();
122 assert(opt_vec[0] ==
"--some");
123 assert(opt_vec[1] ==
"-options");
124 assert(opt_vec[2] ==
"for-rsync");
125 assert(opt_vec[3] ==
"--rsh=/usr/bin/rsh -i foo");
128 int main(
int argc,
char const * argv[])
void init(int argc, char const *argv[])
Initialize the configuration manager from rvm's command line options.
rsync_connection_type rsync_connection
Basic types definitions and templates.
const value_type default_value(void) const
Return the default action.
void default_file(const std::string &a_path)
Set the default configuration filename.
class rsync_behavior rsync_behavior
const map_type & map_value(void) const
Return an std::map of exit codes to actions.
void default_logdir(const std::string &a_path)
Return the default log-dir.
std::string rsync_remote_user
configuration_manager config
The global configuration manager instance.
int main(int argc, char const *argv[])
const job & default_job(void) const
Return the default job configuration.
const jobs_type & jobs(void) const
Return a list of jobs.
std::string rsync_options