Add dry-run for syncthingctl edit

This commit is contained in:
Martchus 2018-04-07 18:30:14 +02:00
parent a805de8a21
commit b92bf4f27a
3 changed files with 8 additions and 1 deletions

View File

@ -678,6 +678,11 @@ void Application::editConfig(const ArgumentOccurrence &)
cerr << Phrases::Error << "New config object seems empty." << Phrases::EndFlush;
return;
}
// handle "dry-run" case
if (m_args.dryRun.isPresent()) {
cout << newConfig.data() << flush;
return;
}
// post new config
using namespace TestUtilities;

View File

@ -22,6 +22,7 @@ Args::Args()
, rescanPwd("rescan", 'r', "rescans the current working directory")
, pausePwd("pause", 'p', "pauses the current working directory")
, resumePwd("resume", '\0', "resumes the current working directory")
, dryRun("dry-run", '\0', "writes the altered configuration to stdout instead of posting it to Syncthing")
, dir("dir", 'd', "specifies a directory by ID", { "ID" })
, dev("dev", '\0', "specifies a device by ID or name", { "ID/name" })
, allDirs("all-dirs", '\0', "applies the operation for all directories")
@ -47,7 +48,7 @@ Args::Args()
waitForIdle.setExample(PROJECT_NAME " wait-for-idle --timeout 1800000 --at-least 5000 && systemctl poweroff\n" PROJECT_NAME
" wait-for-idle --dir dir1 --dir dir2 --dev dev1 --dev dev2 --at-least 5000");
pwd.setSubArguments({ &statusPwd, &rescanPwd, &pausePwd, &resumePwd });
edit.setSubArguments({ &editor });
edit.setSubArguments({ &editor, &dryRun });
rescan.setValueNames({ "dir ID" });
rescan.setRequiredValueCount(Argument::varValueCount);

View File

@ -14,6 +14,7 @@ struct Args {
NoColorArgument noColor;
OperationArgument status, log, stop, restart, rescan, rescanAll, pause, resume, waitForIdle, pwd, cat, edit;
OperationArgument statusPwd, rescanPwd, pausePwd, resumePwd;
ConfigValueArgument dryRun;
ConfigValueArgument dir, dev, allDirs, allDevs;
ConfigValueArgument atLeast, timeout;
ConfigValueArgument editor;