" export Export host configuration of local node to standard output\n"
" export-all Export all host configuration files to standard output\n"
" import [--force] Import host configuration file(s) from standard input\n"
+ " exchange [--force] Same as export followed by import\n"
+ " exchange-all [--force] Same as export-all followed by import\n"
"\n");
printf("Report bugs to tinc@tinc-vpn.org.\n");
}
if(!name)
return 1;
- return export(name, stdout);
+ int result = export(name, stdout);
+ if(!tty)
+ fclose(stdout);
+ return result;
}
static int cmd_export_all(int argc, char *argv[]) {
}
closedir(dir);
+ if(!tty)
+ fclose(stdout);
return result;
}
char buf[4096];
char name[4096];
- char *filename;
+ char *filename = NULL;
int count = 0;
bool firstline = true;
}
}
+static int cmd_exchange(int argc, char *argv[]) {
+ return cmd_export(argc, argv) ?: cmd_import(argc, argv);
+}
+
+static int cmd_exchange_all(int argc, char *argv[]) {
+ return cmd_export_all(argc, argv) ?: cmd_import(argc, argv);
+}
+
static const struct {
const char *command;
int (*function)(int argc, char *argv[]);
{"export", cmd_export},
{"export-all", cmd_export_all},
{"import", cmd_import},
+ {"exchange", cmd_exchange},
+ {"exchange-all", cmd_exchange_all},
{NULL, NULL},
};