easyoref 1.1.0 → 1.2.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/bin.d.ts +10 -2
- package/dist/bin.d.ts.map +1 -1
- package/dist/bin.js +71 -14
- package/dist/bin.js.map +1 -1
- package/dist/service.d.ts +19 -0
- package/dist/service.d.ts.map +1 -0
- package/dist/service.js +165 -0
- package/dist/service.js.map +1 -0
- package/package.json +2 -2
package/dist/bin.d.ts
CHANGED
|
@@ -2,8 +2,16 @@
|
|
|
2
2
|
/**
|
|
3
3
|
* EasyOref CLI entrypoint.
|
|
4
4
|
*
|
|
5
|
-
*
|
|
6
|
-
*
|
|
5
|
+
* easyoref — run the bot (foreground)
|
|
6
|
+
* easyoref run — same as above
|
|
7
|
+
* easyoref init — interactive setup wizard
|
|
8
|
+
* easyoref install — create systemd service + start
|
|
9
|
+
* easyoref uninstall — remove systemd service
|
|
10
|
+
* easyoref start — start service (install if needed)
|
|
11
|
+
* easyoref stop — stop service
|
|
12
|
+
* easyoref restart — restart service
|
|
13
|
+
* easyoref status — show service status
|
|
14
|
+
* easyoref logs — follow service logs
|
|
7
15
|
*/
|
|
8
16
|
export {};
|
|
9
17
|
//# sourceMappingURL=bin.d.ts.map
|
package/dist/bin.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bin.d.ts","sourceRoot":"","sources":["../src/bin.ts"],"names":[],"mappings":";AACA
|
|
1
|
+
{"version":3,"file":"bin.d.ts","sourceRoot":"","sources":["../src/bin.ts"],"names":[],"mappings":";AACA;;;;;;;;;;;;;GAaG"}
|
package/dist/bin.js
CHANGED
|
@@ -2,24 +2,81 @@
|
|
|
2
2
|
/**
|
|
3
3
|
* EasyOref CLI entrypoint.
|
|
4
4
|
*
|
|
5
|
-
*
|
|
6
|
-
*
|
|
5
|
+
* easyoref — run the bot (foreground)
|
|
6
|
+
* easyoref run — same as above
|
|
7
|
+
* easyoref init — interactive setup wizard
|
|
8
|
+
* easyoref install — create systemd service + start
|
|
9
|
+
* easyoref uninstall — remove systemd service
|
|
10
|
+
* easyoref start — start service (install if needed)
|
|
11
|
+
* easyoref stop — stop service
|
|
12
|
+
* easyoref restart — restart service
|
|
13
|
+
* easyoref status — show service status
|
|
14
|
+
* easyoref logs — follow service logs
|
|
7
15
|
*/
|
|
8
16
|
const command = process.argv[2];
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
17
|
+
switch (command) {
|
|
18
|
+
case "init": {
|
|
19
|
+
const { init } = await import("./init.js");
|
|
20
|
+
await init();
|
|
21
|
+
break;
|
|
22
|
+
}
|
|
23
|
+
case "install": {
|
|
24
|
+
const svc = await import("./service.js");
|
|
25
|
+
svc.install();
|
|
26
|
+
break;
|
|
27
|
+
}
|
|
28
|
+
case "uninstall": {
|
|
29
|
+
const svc = await import("./service.js");
|
|
30
|
+
svc.uninstall();
|
|
31
|
+
break;
|
|
32
|
+
}
|
|
33
|
+
case "start": {
|
|
34
|
+
const svc = await import("./service.js");
|
|
35
|
+
svc.start();
|
|
36
|
+
break;
|
|
37
|
+
}
|
|
38
|
+
case "stop": {
|
|
39
|
+
const svc = await import("./service.js");
|
|
40
|
+
svc.stop();
|
|
41
|
+
break;
|
|
42
|
+
}
|
|
43
|
+
case "restart": {
|
|
44
|
+
const svc = await import("./service.js");
|
|
45
|
+
svc.restart();
|
|
46
|
+
break;
|
|
47
|
+
}
|
|
48
|
+
case "status": {
|
|
49
|
+
const svc = await import("./service.js");
|
|
50
|
+
svc.status();
|
|
51
|
+
break;
|
|
52
|
+
}
|
|
53
|
+
case "logs": {
|
|
54
|
+
const svc = await import("./service.js");
|
|
55
|
+
svc.logs();
|
|
56
|
+
break;
|
|
57
|
+
}
|
|
58
|
+
case "--help":
|
|
59
|
+
case "-h":
|
|
60
|
+
console.log(`
|
|
61
|
+
EasyOref — Telegram alert bot for Israeli civil defense
|
|
62
|
+
|
|
15
63
|
Usage:
|
|
16
|
-
easyoref
|
|
17
|
-
easyoref init
|
|
18
|
-
|
|
64
|
+
easyoref Run the bot (foreground)
|
|
65
|
+
easyoref init Interactive setup wizard
|
|
66
|
+
|
|
67
|
+
Service management:
|
|
68
|
+
easyoref install Create systemd service & start
|
|
69
|
+
easyoref uninstall Remove systemd service
|
|
70
|
+
easyoref start Start service (auto-install if needed)
|
|
71
|
+
easyoref stop Stop service
|
|
72
|
+
easyoref restart Restart service
|
|
73
|
+
easyoref status Show service status
|
|
74
|
+
easyoref logs Follow service logs
|
|
19
75
|
`);
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
76
|
+
break;
|
|
77
|
+
case "run":
|
|
78
|
+
default:
|
|
79
|
+
await import("./bot.js");
|
|
23
80
|
}
|
|
24
81
|
export {};
|
|
25
82
|
//# sourceMappingURL=bin.js.map
|
package/dist/bin.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bin.js","sourceRoot":"","sources":["../src/bin.ts"],"names":[],"mappings":";AACA
|
|
1
|
+
{"version":3,"file":"bin.js","sourceRoot":"","sources":["../src/bin.ts"],"names":[],"mappings":";AACA;;;;;;;;;;;;;GAaG;AAEH,MAAM,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAEhC,QAAQ,OAAO,EAAE,CAAC;IAChB,KAAK,MAAM,CAAC,CAAC,CAAC;QACZ,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,MAAM,CAAC,WAAW,CAAC,CAAC;QAC3C,MAAM,IAAI,EAAE,CAAC;QACb,MAAM;IACR,CAAC;IAED,KAAK,SAAS,CAAC,CAAC,CAAC;QACf,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,cAAc,CAAC,CAAC;QACzC,GAAG,CAAC,OAAO,EAAE,CAAC;QACd,MAAM;IACR,CAAC;IAED,KAAK,WAAW,CAAC,CAAC,CAAC;QACjB,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,cAAc,CAAC,CAAC;QACzC,GAAG,CAAC,SAAS,EAAE,CAAC;QAChB,MAAM;IACR,CAAC;IAED,KAAK,OAAO,CAAC,CAAC,CAAC;QACb,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,cAAc,CAAC,CAAC;QACzC,GAAG,CAAC,KAAK,EAAE,CAAC;QACZ,MAAM;IACR,CAAC;IAED,KAAK,MAAM,CAAC,CAAC,CAAC;QACZ,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,cAAc,CAAC,CAAC;QACzC,GAAG,CAAC,IAAI,EAAE,CAAC;QACX,MAAM;IACR,CAAC;IAED,KAAK,SAAS,CAAC,CAAC,CAAC;QACf,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,cAAc,CAAC,CAAC;QACzC,GAAG,CAAC,OAAO,EAAE,CAAC;QACd,MAAM;IACR,CAAC;IAED,KAAK,QAAQ,CAAC,CAAC,CAAC;QACd,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,cAAc,CAAC,CAAC;QACzC,GAAG,CAAC,MAAM,EAAE,CAAC;QACb,MAAM;IACR,CAAC;IAED,KAAK,MAAM,CAAC,CAAC,CAAC;QACZ,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,cAAc,CAAC,CAAC;QACzC,GAAG,CAAC,IAAI,EAAE,CAAC;QACX,MAAM;IACR,CAAC;IAED,KAAK,QAAQ,CAAC;IACd,KAAK,IAAI;QACP,OAAO,CAAC,GAAG,CAAC;;;;;;;;;;;;;;;CAef,CAAC,CAAC;QACC,MAAM;IAER,KAAK,KAAK,CAAC;IACX;QACE,MAAM,MAAM,CAAC,UAAU,CAAC,CAAC;AAC7B,CAAC"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* EasyOref — systemd service management (à la Homebridge)
|
|
3
|
+
*
|
|
4
|
+
* easyoref install — create & enable systemd service, then start
|
|
5
|
+
* easyoref uninstall — stop & remove systemd service
|
|
6
|
+
* easyoref start — start the service (install first if needed)
|
|
7
|
+
* easyoref stop — stop the service
|
|
8
|
+
* easyoref restart — restart the service
|
|
9
|
+
* easyoref status — show service status
|
|
10
|
+
* easyoref logs — follow journal logs
|
|
11
|
+
*/
|
|
12
|
+
export declare function install(): void;
|
|
13
|
+
export declare function uninstall(): void;
|
|
14
|
+
export declare function start(): void;
|
|
15
|
+
export declare function stop(): void;
|
|
16
|
+
export declare function restart(): void;
|
|
17
|
+
export declare function status(): void;
|
|
18
|
+
export declare function logs(): void;
|
|
19
|
+
//# sourceMappingURL=service.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../src/service.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAwFH,wBAAgB,OAAO,IAAI,IAAI,CAsB9B;AAED,wBAAgB,SAAS,IAAI,IAAI,CAchC;AAED,wBAAgB,KAAK,IAAI,IAAI,CAQ5B;AAED,wBAAgB,IAAI,IAAI,IAAI,CAO3B;AAED,wBAAgB,OAAO,IAAI,IAAI,CAQ9B;AAED,wBAAgB,MAAM,IAAI,IAAI,CAQ7B;AAED,wBAAgB,IAAI,IAAI,IAAI,CAY3B"}
|
package/dist/service.js
ADDED
|
@@ -0,0 +1,165 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* EasyOref — systemd service management (à la Homebridge)
|
|
3
|
+
*
|
|
4
|
+
* easyoref install — create & enable systemd service, then start
|
|
5
|
+
* easyoref uninstall — stop & remove systemd service
|
|
6
|
+
* easyoref start — start the service (install first if needed)
|
|
7
|
+
* easyoref stop — stop the service
|
|
8
|
+
* easyoref restart — restart the service
|
|
9
|
+
* easyoref status — show service status
|
|
10
|
+
* easyoref logs — follow journal logs
|
|
11
|
+
*/
|
|
12
|
+
import { execSync, spawnSync } from "node:child_process";
|
|
13
|
+
import { existsSync, writeFileSync } from "node:fs";
|
|
14
|
+
import { homedir } from "node:os";
|
|
15
|
+
import { join } from "node:path";
|
|
16
|
+
const SERVICE_NAME = "easyoref";
|
|
17
|
+
const UNIT_PATH = `/etc/systemd/system/${SERVICE_NAME}.service`;
|
|
18
|
+
const CONFIG_DIR = join(homedir(), ".easyoref");
|
|
19
|
+
const CONFIG_PATH = join(CONFIG_DIR, "config.yaml");
|
|
20
|
+
function whichBin() {
|
|
21
|
+
try {
|
|
22
|
+
return execSync("which easyoref", { encoding: "utf-8" }).trim();
|
|
23
|
+
}
|
|
24
|
+
catch {
|
|
25
|
+
// Fallback: resolve from npm global
|
|
26
|
+
try {
|
|
27
|
+
return execSync("npm bin -g", { encoding: "utf-8" }).trim() + "/easyoref";
|
|
28
|
+
}
|
|
29
|
+
catch {
|
|
30
|
+
return "/usr/bin/easyoref";
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
function whichNode() {
|
|
35
|
+
try {
|
|
36
|
+
return execSync("which node", { encoding: "utf-8" }).trim();
|
|
37
|
+
}
|
|
38
|
+
catch {
|
|
39
|
+
return "/usr/bin/node";
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
function isRoot() {
|
|
43
|
+
return process.getuid?.() === 0;
|
|
44
|
+
}
|
|
45
|
+
function sudoExec(cmd) {
|
|
46
|
+
const result = spawnSync("sudo", cmd.split(" "), {
|
|
47
|
+
stdio: "inherit",
|
|
48
|
+
});
|
|
49
|
+
if (result.status !== 0) {
|
|
50
|
+
console.error(`❌ Command failed: sudo ${cmd}`);
|
|
51
|
+
process.exit(1);
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
function exec(cmd) {
|
|
55
|
+
const result = spawnSync(cmd.split(" ")[0], cmd.split(" ").slice(1), {
|
|
56
|
+
stdio: "inherit",
|
|
57
|
+
});
|
|
58
|
+
if (result.status !== 0) {
|
|
59
|
+
process.exit(result.status ?? 1);
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
function isInstalled() {
|
|
63
|
+
return existsSync(UNIT_PATH);
|
|
64
|
+
}
|
|
65
|
+
function generateUnit() {
|
|
66
|
+
const bin = whichBin();
|
|
67
|
+
const node = whichNode();
|
|
68
|
+
const user = process.env.USER || process.env.LOGNAME || "pi";
|
|
69
|
+
const home = homedir();
|
|
70
|
+
return `[Unit]
|
|
71
|
+
Description=EasyOref Telegram Bot
|
|
72
|
+
After=network-online.target
|
|
73
|
+
Wants=network-online.target
|
|
74
|
+
|
|
75
|
+
[Service]
|
|
76
|
+
Type=simple
|
|
77
|
+
User=${user}
|
|
78
|
+
Environment=HOME=${home}
|
|
79
|
+
Environment=NODE_ENV=production
|
|
80
|
+
ExecStart=${node} ${bin} run
|
|
81
|
+
WorkingDirectory=${home}
|
|
82
|
+
Restart=always
|
|
83
|
+
RestartSec=10
|
|
84
|
+
|
|
85
|
+
[Install]
|
|
86
|
+
WantedBy=multi-user.target
|
|
87
|
+
`;
|
|
88
|
+
}
|
|
89
|
+
// ── Commands ─────────────────────────────────────────────
|
|
90
|
+
export function install() {
|
|
91
|
+
if (!existsSync(CONFIG_PATH)) {
|
|
92
|
+
console.error(`❌ Config not found at ${CONFIG_PATH}`);
|
|
93
|
+
console.error(` Run: easyoref init`);
|
|
94
|
+
process.exit(1);
|
|
95
|
+
}
|
|
96
|
+
console.log(`📦 Installing ${SERVICE_NAME} systemd service...`);
|
|
97
|
+
const unit = generateUnit();
|
|
98
|
+
const tmpPath = `/tmp/${SERVICE_NAME}.service`;
|
|
99
|
+
writeFileSync(tmpPath, unit);
|
|
100
|
+
sudoExec(`cp ${tmpPath} ${UNIT_PATH}`);
|
|
101
|
+
sudoExec("systemctl daemon-reload");
|
|
102
|
+
sudoExec(`systemctl enable ${SERVICE_NAME}`);
|
|
103
|
+
sudoExec(`systemctl start ${SERVICE_NAME}`);
|
|
104
|
+
console.log(`✅ Service installed and started`);
|
|
105
|
+
console.log(` Config: ${CONFIG_PATH}`);
|
|
106
|
+
console.log(` Logs: easyoref logs`);
|
|
107
|
+
console.log(` Status: easyoref status`);
|
|
108
|
+
}
|
|
109
|
+
export function uninstall() {
|
|
110
|
+
if (!isInstalled()) {
|
|
111
|
+
console.log("ℹ️ Service not installed");
|
|
112
|
+
return;
|
|
113
|
+
}
|
|
114
|
+
console.log(`🗑 Removing ${SERVICE_NAME} systemd service...`);
|
|
115
|
+
sudoExec(`systemctl stop ${SERVICE_NAME}`);
|
|
116
|
+
sudoExec(`systemctl disable ${SERVICE_NAME}`);
|
|
117
|
+
sudoExec(`rm ${UNIT_PATH}`);
|
|
118
|
+
sudoExec("systemctl daemon-reload");
|
|
119
|
+
console.log("✅ Service removed");
|
|
120
|
+
}
|
|
121
|
+
export function start() {
|
|
122
|
+
if (!isInstalled()) {
|
|
123
|
+
console.log("Service not installed — installing first...");
|
|
124
|
+
install();
|
|
125
|
+
return;
|
|
126
|
+
}
|
|
127
|
+
sudoExec(`systemctl start ${SERVICE_NAME}`);
|
|
128
|
+
console.log("✅ Started");
|
|
129
|
+
}
|
|
130
|
+
export function stop() {
|
|
131
|
+
if (!isInstalled()) {
|
|
132
|
+
console.log("ℹ️ Service not installed");
|
|
133
|
+
return;
|
|
134
|
+
}
|
|
135
|
+
sudoExec(`systemctl stop ${SERVICE_NAME}`);
|
|
136
|
+
console.log("✅ Stopped");
|
|
137
|
+
}
|
|
138
|
+
export function restart() {
|
|
139
|
+
if (!isInstalled()) {
|
|
140
|
+
console.log("Service not installed — installing first...");
|
|
141
|
+
install();
|
|
142
|
+
return;
|
|
143
|
+
}
|
|
144
|
+
sudoExec(`systemctl restart ${SERVICE_NAME}`);
|
|
145
|
+
console.log("✅ Restarted");
|
|
146
|
+
}
|
|
147
|
+
export function status() {
|
|
148
|
+
if (!isInstalled()) {
|
|
149
|
+
console.log("ℹ️ Service not installed. Run: easyoref install");
|
|
150
|
+
return;
|
|
151
|
+
}
|
|
152
|
+
spawnSync("systemctl", ["status", SERVICE_NAME, "--no-pager"], {
|
|
153
|
+
stdio: "inherit",
|
|
154
|
+
});
|
|
155
|
+
}
|
|
156
|
+
export function logs() {
|
|
157
|
+
if (!isInstalled()) {
|
|
158
|
+
console.log("ℹ️ Service not installed. Run: easyoref install");
|
|
159
|
+
return;
|
|
160
|
+
}
|
|
161
|
+
spawnSync("journalctl", ["-u", SERVICE_NAME, "-f", "--no-pager", "-o", "cat"], {
|
|
162
|
+
stdio: "inherit",
|
|
163
|
+
});
|
|
164
|
+
}
|
|
165
|
+
//# sourceMappingURL=service.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"service.js","sourceRoot":"","sources":["../src/service.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "easyoref",
|
|
3
|
-
"version": "1.1
|
|
3
|
+
"version": "1.2.1",
|
|
4
4
|
"description": "Real-time Israeli civil defense alerts → Telegram, filtered by your location",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"bin": {
|
|
@@ -45,7 +45,7 @@
|
|
|
45
45
|
"typescript": "^5.7.0"
|
|
46
46
|
},
|
|
47
47
|
"engines": {
|
|
48
|
-
"node": ">=
|
|
48
|
+
"node": ">=20"
|
|
49
49
|
},
|
|
50
50
|
"publishConfig": {
|
|
51
51
|
"access": "public",
|