}
int get_path(const boost::program_options::variables_map &vm,
- const std::string &positional_path, std::string *path) {
- if (!positional_path.empty()) {
- *path = positional_path;
- } else if (vm.count(at::PATH)) {
+ size_t *arg_index, std::string *path) {
+ if (vm.count(at::PATH)) {
*path = vm[at::PATH].as<std::string>();
+ } else {
+ *path = get_positional_argument(vm, *arg_index);
+ if (!path->empty()) {
+ ++(*arg_index);
+ }
}
if (path->empty()) {
uint64_t *size);
int get_path(const boost::program_options::variables_map &vm,
- const std::string &positional_path, std::string *path);
+ size_t *arg_index, std::string *path);
int get_formatter(const boost::program_options::variables_map &vm,
argument_types::Format::Formatter *formatter);
}
std::string path;
- r = utils::get_path(vm, utils::get_positional_argument(vm, 1), &path);
+ r = utils::get_path(vm, &arg_index, &path);
if (r < 0) {
return r;
}
}
std::string path;
- r = utils::get_path(vm, utils::get_positional_argument(vm, 1), &path);
+ r = utils::get_path(vm, &arg_index, &path);
if (r < 0) {
return r;
}
int execute_diff(const po::variables_map &vm) {
std::string path;
- int r = utils::get_path(vm, utils::get_positional_argument(vm, 0), &path);
+ size_t arg_index = 0;
+ int r = utils::get_path(vm, &arg_index, &path);
if (r < 0) {
return r;
}
- size_t arg_index = 1;
std::string pool_name;
std::string image_name;
std::string snap_name;
int execute(const po::variables_map &vm) {
std::string path;
- int r = utils::get_path(vm, utils::get_positional_argument(vm, 0), &path);
+ size_t arg_index = 0;
+ int r = utils::get_path(vm, &arg_index, &path);
if (r < 0) {
return r;
}
sparse_size = vm[at::IMAGE_SPARSE_SIZE].as<size_t>();
}
- size_t arg_index = 1;
std::string pool_name = deprecated_pool_name;
std::string image_name;
std::string snap_name = deprecated_snap_name;
}
std::string path;
- r = utils::get_path(vm, utils::get_positional_argument(vm, 1), &path);
+ r = utils::get_path(vm, &arg_index, &path);
if (r < 0) {
return r;
}
int execute_import(const po::variables_map &vm) {
std::string path;
- int r = utils::get_path(vm, utils::get_positional_argument(vm, 0), &path);
+ size_t arg_index = 0;
+ int r = utils::get_path(vm, &arg_index, &path);
if (r < 0) {
return r;
}
- size_t arg_index = 1;
std::string pool_name;
std::string journal_name;
r = utils::get_pool_journal_names(vm, at::ARGUMENT_MODIFIER_DEST,
}
std::string path;
- int r = utils::get_path(vm, utils::get_positional_argument(vm, 2),
- &path);
+ size_t arg_index = 2;
+ int r = utils::get_path(vm, &arg_index, &path);
if (r < 0) {
return r;
}