mirror of
https://github.com/vvzvlad/vestasync.git
synced 2024-11-05 06:49:11 +03:00
add vestasync.js
This commit is contained in:
parent
e3eab8d4cd
commit
535dde06d8
105
files/vestasync.js
Normal file
105
files/vestasync.js
Normal file
@ -0,0 +1,105 @@
|
||||
defineVirtualDevice("vestasync", {
|
||||
title: "Vestasync",
|
||||
cells: {
|
||||
"Last push": {
|
||||
type: "text",
|
||||
value: "Update...",
|
||||
title: "Last push"
|
||||
},
|
||||
"Current commit": {
|
||||
type: "text",
|
||||
value: "Update...",
|
||||
title: "Last commit hash"
|
||||
},
|
||||
autopush: {
|
||||
type: "switch",
|
||||
value: true,
|
||||
title: "Auto push on files changed"
|
||||
},
|
||||
hostname: {
|
||||
type: "text",
|
||||
value: "",
|
||||
title: "Hostname"
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
function _update_vestasync() {
|
||||
runShellCommand("git -C /mnt/data/etc log -1 --format=%ct", {
|
||||
captureOutput: true,
|
||||
exitCallback: function (exitCode, capturedOutput) {
|
||||
if (exitCode === 0) {
|
||||
var last_push_time = parseInt(capturedOutput);
|
||||
var now = new Date();
|
||||
var diff_in_seconds = Math.floor((now.getTime() / 1000) - last_push_time);
|
||||
var diff_in_minutes = Math.floor(diff_in_seconds / 60);
|
||||
var diff_in_hours = Math.floor(diff_in_minutes / 60);
|
||||
var diff_in_days = Math.floor(diff_in_hours / 24);
|
||||
var human_readable_time = "";
|
||||
if (diff_in_days > 0) {
|
||||
human_readable_time = diff_in_days + " days ago";
|
||||
} else if (diff_in_hours > 0) {
|
||||
human_readable_time = diff_in_hours + " hours ago";
|
||||
} else if (diff_in_minutes > 0) {
|
||||
human_readable_time = diff_in_minutes + " minutes ago";
|
||||
} else {
|
||||
human_readable_time = "just now";
|
||||
}
|
||||
dev.vestasync["Last push"] = human_readable_time;
|
||||
}
|
||||
}
|
||||
});
|
||||
runShellCommand("git -C /mnt/data/etc log -1 --format=%H", {
|
||||
captureOutput: true,
|
||||
exitCallback: function (exitCode, capturedOutput) {
|
||||
if (exitCode === 0) {
|
||||
var shortenedCommit = capturedOutput.trim().substring(0, 10);
|
||||
dev.vestasync["Current commit"] = shortenedCommit;
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
runShellCommand("systemctl is-enabled pushgit_inotify.service", {
|
||||
captureOutput: true,
|
||||
exitCallback: function (exitCode, capturedOutput) {
|
||||
if (exitCode === 0) {
|
||||
var isEnabled = capturedOutput.trim() === "enabled";
|
||||
dev.vestasync.autopush = isEnabled;
|
||||
} else {
|
||||
log("Error checking autopush status:" + capturedOutput + exitCode);
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
runShellCommand("hostname", {
|
||||
captureOutput: true,
|
||||
exitCallback: function (exitCode, capturedOutput) {
|
||||
if (exitCode === 0) {
|
||||
var hostname = capturedOutput.trim();
|
||||
dev.vestasync.hostname = hostname;
|
||||
} else {
|
||||
console.error("Error checking hostname:", capturedOutput.trim());
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
};
|
||||
|
||||
|
||||
defineRule("_vestasync_autopush", {
|
||||
whenChanged: "vestasync/autopush",
|
||||
then: function (newValue, devName, cellName) {
|
||||
if (dev.vestasync.autopush) {
|
||||
runShellCommand("systemctl start pushgit_inotify.service");
|
||||
} else {
|
||||
runShellCommand("systemctl stop pushgit_inotify.service");
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
_update_vestasync();
|
||||
setInterval(_update_vestasync, 10000);
|
||||
|
||||
|
@ -97,6 +97,9 @@ def init_repo(c):
|
||||
c.run(f'cd /mnt/data/etc/ && git remote add origin {args.vestasync_gitea_protocol}://{gitea_user}:{args.gitea_token}@{args.vestasync_gitea_host}:{args.vestasync_gitea_port}/{gitea_user}/{hostname}.git')
|
||||
|
||||
|
||||
def copy_wb_rule(c):
|
||||
c.put("./files/vestasync.js", "/mnt/data/etc/wb-rules/vestasync.js")
|
||||
|
||||
def create_automac_systemd(c):
|
||||
apply_macs_script_path = "/usr/local/bin/apply_macs.sh"
|
||||
c.put("./files/apply_macs.sh", apply_macs_script_path)
|
||||
@ -202,6 +205,7 @@ def device_install():
|
||||
ppush_the_repo(c)
|
||||
save_mac_in_cfg(c)
|
||||
save_hostname(c)
|
||||
copy_wb_rule(c)
|
||||
ppush_the_repo(c)
|
||||
create_automac_systemd(c)
|
||||
create_autogit_systemd(c)
|
||||
|
Loading…
Reference in New Issue
Block a user