Add option for CLI's `wait-for-idle` to require devs to be connected
See https://github.com/Martchus/syncthingtray/issues/199
This commit is contained in:
parent
021cbf2ae5
commit
89caa76102
|
@ -1005,6 +1005,10 @@ bool Application::checkWhetherIdle() const
|
|||
switch (dev->status) {
|
||||
case SyncthingDevStatus::Unknown:
|
||||
case SyncthingDevStatus::Disconnected:
|
||||
if (m_args.requireDevsConnected.isPresent()) {
|
||||
return false;
|
||||
}
|
||||
break;
|
||||
case SyncthingDevStatus::OwnDevice:
|
||||
case SyncthingDevStatus::Idle:
|
||||
break;
|
||||
|
|
|
@ -32,6 +32,7 @@ Args::Args()
|
|||
, atLeast("at-least", 'a', "specifies for how many milliseconds Syncthing must idle (prevents exiting too early in case of flaky status)",
|
||||
{ "number" })
|
||||
, timeout("timeout", 't', "specifies how many milliseconds to wait at most", { "number" })
|
||||
, requireDevsConnected("require-devs-connected", '\0', "require the specified devices to be connected")
|
||||
, editor("editor", '\0', "specifies the editor to be opened", { "editor name", "editor option" })
|
||||
, configFile("config-file", 'f', "specifies the Syncthing config file to read API key and URL from, when not explicitly specified", { "path" })
|
||||
, apiKey("api-key", 'k', "specifies the API key", { "key" })
|
||||
|
@ -47,7 +48,7 @@ Args::Args()
|
|||
dev.setValueCompletionBehavior(ValueCompletionBehavior::PreDefinedValues | ValueCompletionBehavior::InvokeCallback);
|
||||
status.setSubArguments({ &stats, &dir, &dev, &allDirs, &allDevs });
|
||||
status.setExample(PROJECT_NAME " status # shows all dirs and devs\n" PROJECT_NAME " status --dir dir1 --dir dir2 --dev dev1 --dev dev2");
|
||||
waitForIdle.setSubArguments({ &dir, &dev, &allDirs, &allDevs, &atLeast, &timeout });
|
||||
waitForIdle.setSubArguments({ &dir, &dev, &allDirs, &allDevs, &atLeast, &timeout, &requireDevsConnected });
|
||||
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 });
|
||||
|
|
|
@ -14,7 +14,7 @@ struct Args {
|
|||
OperationArgument statusPwd, rescanPwd, pausePwd, resumePwd;
|
||||
ConfigValueArgument script, jsLines, dryRun;
|
||||
ConfigValueArgument stats, dir, dev, allDirs, allDevs;
|
||||
ConfigValueArgument atLeast, timeout;
|
||||
ConfigValueArgument atLeast, timeout, requireDevsConnected;
|
||||
ConfigValueArgument editor;
|
||||
ConfigValueArgument configFile, apiKey, url, credentials, certificate, requestTimeout;
|
||||
};
|
||||
|
|
Loading…
Reference in New Issue