diff --git a/files/vestasync.js b/files/vestasync.js index 3ef8366..9119d10 100644 --- a/files/vestasync.js +++ b/files/vestasync.js @@ -11,11 +11,21 @@ defineVirtualDevice("vestasync", { value: "Update...", title: "Last commit hash" }, - autopush: { + autopush_inotify: { type: "switch", - value: true, + value: false, title: "Auto push on files changed" }, + autopush_timer: { + type: "switch", + value: false, + title: "Auto push every day" + }, + push_now: { + type: "switch", + value: false, + title: "Commit and push" + }, hostname: { type: "text", value: "", @@ -64,7 +74,15 @@ function _update_vestasync() { captureOutput: true, exitCallback: function (exitCode, capturedOutput) { var isEnabled = capturedOutput.trim() === "active"; - dev.vestasync.autopush = isEnabled; + dev.vestasync.autopush_inotify = isEnabled; + } + }); + + runShellCommand("systemctl is-active pushgit.timer", { + captureOutput: true, + exitCallback: function (exitCode, capturedOutput) { + var isEnabled = capturedOutput.trim() === "active"; + dev.vestasync.autopush_timer = isEnabled; } }); @@ -82,14 +100,40 @@ function _update_vestasync() { }; - -defineRule("_vestasync_autopush", { - whenChanged: "vestasync/autopush", +defineRule("_vestasync_autopush_timer", { + whenChanged: "vestasync/autopush_timer", then: function (newValue, devName, cellName) { - if (dev.vestasync.autopush) { - runShellCommand("systemctl daemon-reload ; systemctl enable pushgit_inotify.service ; systemctl start pushgit_inotify.service"); + if (dev.vestasync.autopush_timer) { + runShellCommand("systemctl daemon-reload ; systemctl enable pushgit.timer ; systemctl start pushgit.timer; sleep 10"); + _update_vestasync(); } else { - runShellCommand("systemctl stop pushgit_inotify.service ; systemctl disable pushgit_inotify.service"); + runShellCommand("systemctl stop pushgit.timer ; systemctl disable pushgit.timer; sleep 10"); + _update_vestasync(); + } + } +}); + + +defineRule("_vestasync_autopush_inotify", { + whenChanged: "vestasync/autopush_inotify", + then: function (newValue, devName, cellName) { + if (dev.vestasync.autopush_inotify) { + runShellCommand("systemctl daemon-reload ; systemctl enable pushgit_inotify.service ; systemctl start pushgit_inotify.service; sleep 10"); + _update_vestasync(); + } else { + runShellCommand("systemctl stop pushgit_inotify.service ; systemctl disable pushgit_inotify.service; sleep 10"); + _update_vestasync(); + } + } +}); + +defineRule("_vestasync_push", { + whenChanged: "vestasync/push_now", + then: function (newValue, devName, cellName) { + if (dev.vestasync.push_now) { + runShellCommand("systemctl start pushgit.service; sleep 2"); + dev.vestasync.push_now = false; + _update_vestasync(); } } });