/*
+--------------------------------------------------------------------+
- | libmemcached - C/C++ Client Library for memcached |
+ | libmemcached-awesome - C/C++ Client Library for memcached |
+--------------------------------------------------------------------+
| Redistribution and use in source and binary forms, with or without |
| modification, are permitted under the terms of the BSD license. |
| the terms online at: https://opensource.org/licenses/BSD-3-Clause |
+--------------------------------------------------------------------+
| Copyright (c) 2006-2014 Brian Aker https://datadifferential.com/ |
- | Copyright (c) 2020 Michael Wallner <mike@php.net> |
+ | Copyright (c) 2020-2021 Michael Wallner https://awesome.co/ |
+--------------------------------------------------------------------+
*/
if (verbose) {
*ref << "value: ";
}
-
+
ref->write(val, len);
if (verbose || !opt.isset("file")) {
opt.add(def);
}
opt.add("flags", 'F', no_argument, "Display key flags, too.");
- opt.add("file", 'f', required_argument, "Output to file instead of standard output.");
+ opt.add("file", 'f', optional_argument, "Output to file instead of standard output."
+ "\n\t\t# NOTE: defaults to <key> if no argument was provided.");
char **argp = nullptr;
if (!opt.parse(argc, argv, &argp)) {
exit(EXIT_FAILURE);
}
+ auto file_flag = opt.isset("file");
+ auto file = opt.argof("file");
auto exit_code = EXIT_SUCCESS;
for (auto arg = argp; *arg; ++arg) {
auto key = *arg;
if (*key) {
+ if (!file && file_flag) {
+ file = key;
+ }
+
std::ofstream fstream{};
- std::ostream *ostream = check_ostream(opt, opt.argof("file"), fstream);
+ std::ostream *ostream = check_ostream(opt, file, fstream);
if (!check_return(opt, memc, key, memcat(opt, &memc, key, ostream))) {
exit_code = EXIT_FAILURE;