@crewx/cron 0.1.1 → 0.1.3
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/SKILL.md +349 -0
- package/dist/cli.js +351 -276
- package/dist/cli.js.map +1 -1
- package/package.json +3 -5
package/SKILL.md
ADDED
|
@@ -0,0 +1,349 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: cron
|
|
3
|
+
description: Cron Scheduler skill for CrewX - Schedule and execute crewx/shell commands automatically using cron expressions.
|
|
4
|
+
version: 1.1.0
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Cron Scheduler Skill
|
|
8
|
+
|
|
9
|
+
> **Phase**: 1 (MVP)
|
|
10
|
+
|
|
11
|
+
Schedule and execute CrewX commands automatically using cron expressions.
|
|
12
|
+
|
|
13
|
+
## Overview
|
|
14
|
+
|
|
15
|
+
The Cron Scheduler skill allows you to schedule `crewx q` (query), `crewx x` (execute), or raw shell commands to run automatically at specified intervals. It runs as a background daemon that checks schedules every minute and executes matching commands.
|
|
16
|
+
|
|
17
|
+
The daemon is managed by **PM2** (Process Manager 2), providing robust process management with automatic restarts, log management, and cross-platform compatibility.
|
|
18
|
+
|
|
19
|
+
## Quick Start
|
|
20
|
+
|
|
21
|
+
```bash
|
|
22
|
+
# Navigate to skill directory
|
|
23
|
+
cd skills/cron
|
|
24
|
+
|
|
25
|
+
# Install dependencies (includes PM2)
|
|
26
|
+
npm install
|
|
27
|
+
|
|
28
|
+
# Add a schedule (daily at 9:00 AM)
|
|
29
|
+
node cron.js add "0 9 * * *" "@crewx_claude_dev Daily code review"
|
|
30
|
+
|
|
31
|
+
# Start the daemon (uses PM2)
|
|
32
|
+
node cron.js start
|
|
33
|
+
|
|
34
|
+
# Check status
|
|
35
|
+
node cron.js status
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
## Prerequisites
|
|
39
|
+
|
|
40
|
+
This skill requires **PM2** (Process Manager 2) for daemon management. PM2 is included in the package dependencies and will be installed automatically when you run `npm install`.
|
|
41
|
+
|
|
42
|
+
If you need to install PM2 globally:
|
|
43
|
+
```bash
|
|
44
|
+
npm install -g pm2
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
## Commands
|
|
48
|
+
|
|
49
|
+
### Schedule Management
|
|
50
|
+
|
|
51
|
+
| Command | Description |
|
|
52
|
+
|---------|-------------|
|
|
53
|
+
| `add <cron> <command>` | Add a new schedule |
|
|
54
|
+
| `list` | List all schedules |
|
|
55
|
+
| `update <id>` | Update a schedule |
|
|
56
|
+
| `remove <id>` | Remove a schedule |
|
|
57
|
+
| `enable <id>` | Enable a schedule |
|
|
58
|
+
| `disable <id>` | Disable a schedule |
|
|
59
|
+
| `info <id>` | Show schedule details |
|
|
60
|
+
| `run <id>` | Run a schedule immediately (testing) |
|
|
61
|
+
|
|
62
|
+
### Daemon Management
|
|
63
|
+
|
|
64
|
+
| Command | Description |
|
|
65
|
+
|---------|-------------|
|
|
66
|
+
| `start` | Start the cron daemon |
|
|
67
|
+
| `stop` | Stop the cron daemon |
|
|
68
|
+
| `status` | Check daemon status |
|
|
69
|
+
|
|
70
|
+
## Usage Examples
|
|
71
|
+
|
|
72
|
+
### Basic Scheduling
|
|
73
|
+
|
|
74
|
+
```bash
|
|
75
|
+
# Daily code review at 9:00 AM
|
|
76
|
+
node cron.js add "0 9 * * *" "@crewx_claude_dev Daily code review" --name "Daily Review"
|
|
77
|
+
|
|
78
|
+
# Weekly report every Friday at 5:00 PM
|
|
79
|
+
node cron.js add "0 17 * * 5" "@crewx_gemini_dev Generate weekly report" --name "Weekly Report"
|
|
80
|
+
|
|
81
|
+
# Every hour on weekdays
|
|
82
|
+
node cron.js add "0 * * * 1-5" "@claude Check for new issues"
|
|
83
|
+
|
|
84
|
+
# Run a shell command
|
|
85
|
+
node cron.js add "*/5 * * * *" "echo hello >> /tmp/cron.log" --mode command --name "Hello Log"
|
|
86
|
+
```
|
|
87
|
+
|
|
88
|
+
### Options
|
|
89
|
+
|
|
90
|
+
```bash
|
|
91
|
+
node cron.js add "0 9 * * *" "@agent command" \
|
|
92
|
+
--name "My Schedule" # Human-readable name
|
|
93
|
+
--mode query # "query", "execute", or "command" (default: execute)
|
|
94
|
+
--timezone "Asia/Seoul" # IANA timezone
|
|
95
|
+
--dir "/path/to/project" # Working directory
|
|
96
|
+
--timeout 300000 # Timeout in ms (default: 600000 = 10min)
|
|
97
|
+
--allow-concurrent # Allow overlapping executions
|
|
98
|
+
```
|
|
99
|
+
|
|
100
|
+
### Managing Schedules
|
|
101
|
+
|
|
102
|
+
```bash
|
|
103
|
+
# List all schedules
|
|
104
|
+
node cron.js list
|
|
105
|
+
|
|
106
|
+
# Show schedule details
|
|
107
|
+
node cron.js info abc123
|
|
108
|
+
|
|
109
|
+
# Update a schedule (no need to remove and add again!)
|
|
110
|
+
node cron.js update abc123 --cron="0 10 * * *" # Change cron expression
|
|
111
|
+
node cron.js update abc123 --command="@agent new" # Change command
|
|
112
|
+
node cron.js update abc123 --name="New Name" # Change name
|
|
113
|
+
node cron.js update abc123 --cron="30 8 * * *" --name="Morning Task" # Multiple changes
|
|
114
|
+
|
|
115
|
+
# Disable/enable a schedule
|
|
116
|
+
node cron.js disable abc123
|
|
117
|
+
node cron.js enable abc123
|
|
118
|
+
|
|
119
|
+
# Remove a schedule
|
|
120
|
+
node cron.js remove abc123
|
|
121
|
+
|
|
122
|
+
# Test run a schedule immediately
|
|
123
|
+
node cron.js run abc123
|
|
124
|
+
```
|
|
125
|
+
|
|
126
|
+
### Update Options
|
|
127
|
+
|
|
128
|
+
```bash
|
|
129
|
+
node cron.js update <id> \
|
|
130
|
+
--cron "0 9 * * *" # New cron expression
|
|
131
|
+
--command "@agent task" # New command
|
|
132
|
+
--name "New Name" # New name
|
|
133
|
+
--mode query # "query", "execute", or "command"
|
|
134
|
+
--timezone "Asia/Seoul" # IANA timezone
|
|
135
|
+
--dir "/path/to/project" # Working directory
|
|
136
|
+
--timeout 300000 # Timeout in ms
|
|
137
|
+
--allow-concurrent # Allow overlapping executions
|
|
138
|
+
--no-allow-concurrent # Disallow overlapping executions
|
|
139
|
+
```
|
|
140
|
+
|
|
141
|
+
### Daemon Control
|
|
142
|
+
|
|
143
|
+
```bash
|
|
144
|
+
# Start daemon in background (via PM2)
|
|
145
|
+
node cron.js start
|
|
146
|
+
|
|
147
|
+
# Check if daemon is running
|
|
148
|
+
node cron.js status
|
|
149
|
+
|
|
150
|
+
# Stop daemon (via PM2)
|
|
151
|
+
node cron.js stop
|
|
152
|
+
```
|
|
153
|
+
|
|
154
|
+
The daemon is managed by **PM2**, which provides:
|
|
155
|
+
- Automatic restarts on crashes
|
|
156
|
+
- Log management
|
|
157
|
+
- Process monitoring
|
|
158
|
+
- Cross-platform compatibility
|
|
159
|
+
|
|
160
|
+
### Auto-Start Behavior
|
|
161
|
+
|
|
162
|
+
User commands like `add`, `list`, `run`, `enable`, `disable`, `update`, and `info` will automatically start the daemon if it is not running:
|
|
163
|
+
|
|
164
|
+
```
|
|
165
|
+
⚡ cron 데몬이 꺼져 있어서 자동 시작합니다...
|
|
166
|
+
```
|
|
167
|
+
|
|
168
|
+
You can also use PM2 commands directly:
|
|
169
|
+
```bash
|
|
170
|
+
# View PM2 process list
|
|
171
|
+
pm2 list
|
|
172
|
+
|
|
173
|
+
# View daemon logs
|
|
174
|
+
pm2 logs cron-daemon
|
|
175
|
+
|
|
176
|
+
# Monitor daemon
|
|
177
|
+
pm2 monit
|
|
178
|
+
|
|
179
|
+
# Restart daemon
|
|
180
|
+
pm2 restart cron-daemon
|
|
181
|
+
```
|
|
182
|
+
|
|
183
|
+
## Cron Expression Format
|
|
184
|
+
|
|
185
|
+
Standard 5-field cron format: `minute hour day month weekday`
|
|
186
|
+
|
|
187
|
+
```
|
|
188
|
+
┌───────────── minute (0 - 59)
|
|
189
|
+
│ ┌───────────── hour (0 - 23)
|
|
190
|
+
│ │ ┌───────────── day of month (1 - 31)
|
|
191
|
+
│ │ │ ┌───────────── month (1 - 12)
|
|
192
|
+
│ │ │ │ ┌───────────── day of week (0 - 6, Sunday = 0)
|
|
193
|
+
│ │ │ │ │
|
|
194
|
+
* * * * *
|
|
195
|
+
```
|
|
196
|
+
|
|
197
|
+
### Special Characters
|
|
198
|
+
|
|
199
|
+
| Character | Description | Example |
|
|
200
|
+
|-----------|-------------|---------|
|
|
201
|
+
| `*` | Any value | `* * * * *` (every minute) |
|
|
202
|
+
| `*/n` | Every n | `*/5 * * * *` (every 5 minutes) |
|
|
203
|
+
| `a-b` | Range | `0 9-17 * * *` (9 AM to 5 PM) |
|
|
204
|
+
| `a,b,c` | List | `0 9,12,18 * * *` (9 AM, 12 PM, 6 PM) |
|
|
205
|
+
|
|
206
|
+
### Common Patterns
|
|
207
|
+
|
|
208
|
+
| Expression | Description |
|
|
209
|
+
|------------|-------------|
|
|
210
|
+
| `0 9 * * *` | Every day at 9:00 AM |
|
|
211
|
+
| `0 9 * * 1-5` | Weekdays at 9:00 AM |
|
|
212
|
+
| `0 */2 * * *` | Every 2 hours |
|
|
213
|
+
| `*/30 * * * *` | Every 30 minutes |
|
|
214
|
+
| `0 0 * * 0` | Every Sunday at midnight |
|
|
215
|
+
| `0 0 1 * *` | First day of every month |
|
|
216
|
+
|
|
217
|
+
## File Structure
|
|
218
|
+
|
|
219
|
+
```
|
|
220
|
+
skills/cron/
|
|
221
|
+
├── cron.js # Main CLI + daemon
|
|
222
|
+
├── ecosystem.config.js # PM2 configuration
|
|
223
|
+
├── package.json # Dependencies
|
|
224
|
+
├── SKILL.md # This documentation
|
|
225
|
+
├── .cron-data.json # Schedule data (auto-created)
|
|
226
|
+
└── .daemon.log # Daemon log file (auto-created)
|
|
227
|
+
```
|
|
228
|
+
|
|
229
|
+
## Timezone Support
|
|
230
|
+
|
|
231
|
+
Specify timezone using IANA format:
|
|
232
|
+
|
|
233
|
+
```bash
|
|
234
|
+
# Schedule for Asia/Seoul timezone
|
|
235
|
+
node cron.js add "0 9 * * *" "@agent task" --timezone "Asia/Seoul"
|
|
236
|
+
|
|
237
|
+
# Schedule for US Pacific time
|
|
238
|
+
node cron.js add "0 9 * * *" "@agent task" --timezone "America/Los_Angeles"
|
|
239
|
+
```
|
|
240
|
+
|
|
241
|
+
If no timezone is specified, local system time is used.
|
|
242
|
+
|
|
243
|
+
## Concurrent Execution Prevention
|
|
244
|
+
|
|
245
|
+
By default, a schedule will not start a new execution if the previous one is still running. This prevents overlap when commands take longer than expected.
|
|
246
|
+
|
|
247
|
+
To allow concurrent executions:
|
|
248
|
+
|
|
249
|
+
```bash
|
|
250
|
+
node cron.js add "* * * * *" "@agent task" --allow-concurrent
|
|
251
|
+
```
|
|
252
|
+
|
|
253
|
+
## Cross-Platform Compatibility
|
|
254
|
+
|
|
255
|
+
This skill supports Windows, macOS, and Linux:
|
|
256
|
+
|
|
257
|
+
- **Windows**: Uses `windowsHide: true` to prevent console popups, `taskkill` for process termination
|
|
258
|
+
- **Unix/macOS**: Uses standard SIGTERM signals
|
|
259
|
+
|
|
260
|
+
## Troubleshooting
|
|
261
|
+
|
|
262
|
+
### Daemon won't start
|
|
263
|
+
|
|
264
|
+
```bash
|
|
265
|
+
# Check if already running
|
|
266
|
+
node cron.js status
|
|
267
|
+
|
|
268
|
+
# Or check PM2 directly
|
|
269
|
+
pm2 list
|
|
270
|
+
|
|
271
|
+
# If stale process exists, stop first
|
|
272
|
+
node cron.js stop
|
|
273
|
+
node cron.js start
|
|
274
|
+
```
|
|
275
|
+
|
|
276
|
+
### Check daemon logs
|
|
277
|
+
|
|
278
|
+
```bash
|
|
279
|
+
# View daemon logs via PM2
|
|
280
|
+
pm2 logs cron-daemon
|
|
281
|
+
|
|
282
|
+
# Or view log file directly
|
|
283
|
+
tail -f skills/cron/.daemon.log
|
|
284
|
+
|
|
285
|
+
# View PM2 process info
|
|
286
|
+
pm2 show cron-daemon
|
|
287
|
+
```
|
|
288
|
+
|
|
289
|
+
### Schedule not executing
|
|
290
|
+
|
|
291
|
+
1. Check if daemon is running: `node cron.js status` or `pm2 list`
|
|
292
|
+
2. Verify schedule is enabled: `node cron.js info <id>`
|
|
293
|
+
3. Check cron expression is correct
|
|
294
|
+
4. Test manually: `node cron.js run <id>`
|
|
295
|
+
5. Check daemon logs: `pm2 logs cron-daemon`
|
|
296
|
+
|
|
297
|
+
### PM2 not found
|
|
298
|
+
|
|
299
|
+
If you get "pm2 command not found", ensure PM2 is installed:
|
|
300
|
+
```bash
|
|
301
|
+
npm install # Installs PM2 locally in node_modules
|
|
302
|
+
# Or install globally
|
|
303
|
+
npm install -g pm2
|
|
304
|
+
```
|
|
305
|
+
|
|
306
|
+
## Security Note
|
|
307
|
+
|
|
308
|
+
Do not include sensitive information directly in commands. Use environment variables instead:
|
|
309
|
+
|
|
310
|
+
```bash
|
|
311
|
+
# Bad - API key exposed in schedule
|
|
312
|
+
node cron.js add "0 9 * * *" "@agent API_KEY=secret task"
|
|
313
|
+
|
|
314
|
+
# Good - Use environment variables
|
|
315
|
+
export API_KEY=secret
|
|
316
|
+
node cron.js add "0 9 * * *" "@agent task using env"
|
|
317
|
+
```
|
|
318
|
+
|
|
319
|
+
## API Reference
|
|
320
|
+
|
|
321
|
+
### Schedule Object
|
|
322
|
+
|
|
323
|
+
```typescript
|
|
324
|
+
interface Schedule {
|
|
325
|
+
id: string; // 6-character unique ID
|
|
326
|
+
cron: string; // Cron expression (5 fields)
|
|
327
|
+
command: string; // CrewX command to execute
|
|
328
|
+
mode: "query" | "execute" | "command"; // Execution mode
|
|
329
|
+
enabled: boolean; // Whether schedule is active
|
|
330
|
+
name?: string; // Human-readable name
|
|
331
|
+
working_directory?: string; // Execution directory
|
|
332
|
+
timezone?: string; // IANA timezone
|
|
333
|
+
timeout_ms?: number; // Timeout (default: 600000)
|
|
334
|
+
allow_concurrent?: boolean; // Allow overlapping runs
|
|
335
|
+
created_at: string; // ISO 8601 timestamp
|
|
336
|
+
updated_at: string; // ISO 8601 timestamp
|
|
337
|
+
last_run?: string; // Last execution time
|
|
338
|
+
next_run?: string; // Next scheduled time
|
|
339
|
+
run_count?: number; // Total execution count
|
|
340
|
+
}
|
|
341
|
+
```
|
|
342
|
+
|
|
343
|
+
## Future Enhancements (Phase 2+)
|
|
344
|
+
|
|
345
|
+
- Execution history with detailed logs
|
|
346
|
+
- Integration with CrewX TracingService
|
|
347
|
+
- Web UI for schedule management
|
|
348
|
+
- Notification on failure
|
|
349
|
+
- Retry logic for failed executions
|
package/dist/cli.js
CHANGED
|
@@ -36,7 +36,6 @@ var __importStar = (this && this.__importStar) || (function () {
|
|
|
36
36
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
37
37
|
const fs = __importStar(require("fs"));
|
|
38
38
|
const path = __importStar(require("path"));
|
|
39
|
-
const commander_1 = require("commander");
|
|
40
39
|
let PKG_VERSION = 'unknown';
|
|
41
40
|
try {
|
|
42
41
|
const _pkgPath = fs.existsSync(path.join(__dirname, 'package.json'))
|
|
@@ -61,295 +60,371 @@ function loadTracer() {
|
|
|
61
60
|
}
|
|
62
61
|
return null;
|
|
63
62
|
}
|
|
64
|
-
const
|
|
65
|
-
|
|
63
|
+
const engine_1 = require("./src/engine");
|
|
64
|
+
function getOpt(args, long, short) {
|
|
65
|
+
for (let i = 0; i < args.length; i++) {
|
|
66
|
+
const a = args[i];
|
|
67
|
+
if (a === long || (short && a === short)) {
|
|
68
|
+
return args[i + 1];
|
|
69
|
+
}
|
|
70
|
+
if (a.startsWith(long + '=')) {
|
|
71
|
+
return a.slice(long.length + 1);
|
|
72
|
+
}
|
|
73
|
+
if (short && a.startsWith(short + '=')) {
|
|
74
|
+
return a.slice(short.length + 1);
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
return undefined;
|
|
78
|
+
}
|
|
79
|
+
function hasFlag(args, long, short) {
|
|
80
|
+
return args.includes(long) || (short ? args.includes(short) : false);
|
|
81
|
+
}
|
|
82
|
+
function showDetailedUsage() {
|
|
66
83
|
const skillMd = path.join(__dirname, '..', 'SKILL.md');
|
|
67
84
|
if (fs.existsSync(skillMd)) {
|
|
68
85
|
process.stdout.write(fs.readFileSync(skillMd, 'utf-8'));
|
|
69
|
-
|
|
86
|
+
}
|
|
87
|
+
else {
|
|
88
|
+
console.log('No SKILL.md found. Use --help for usage.');
|
|
70
89
|
}
|
|
71
90
|
}
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
if (
|
|
114
|
-
console.log(
|
|
91
|
+
function printUsage() {
|
|
92
|
+
console.log(`
|
|
93
|
+
@crewx/cron@${PKG_VERSION} - Cron-based task scheduler for AI agents
|
|
94
|
+
|
|
95
|
+
Usage:
|
|
96
|
+
cron <command> [options]
|
|
97
|
+
|
|
98
|
+
Commands:
|
|
99
|
+
cron add <schedule> <command> Add a new schedule
|
|
100
|
+
cron list List all schedules
|
|
101
|
+
cron remove <id> Remove a schedule
|
|
102
|
+
cron enable <id> Enable a schedule
|
|
103
|
+
cron disable <id> Disable a schedule
|
|
104
|
+
cron update <id> [options] Update a schedule
|
|
105
|
+
cron info <id> Show schedule details
|
|
106
|
+
cron run <id> Run a schedule immediately
|
|
107
|
+
cron start Start the cron daemon
|
|
108
|
+
cron stop Stop the cron daemon
|
|
109
|
+
cron status Check daemon status
|
|
110
|
+
cron usage Show detailed guide
|
|
111
|
+
|
|
112
|
+
Options:
|
|
113
|
+
--version Show version
|
|
114
|
+
--help, -h Show this help
|
|
115
|
+
|
|
116
|
+
Examples:
|
|
117
|
+
cron add "0 9 * * *" "@agent daily report" --name "Morning Report"
|
|
118
|
+
cron list
|
|
119
|
+
cron run <id>
|
|
120
|
+
cron start
|
|
121
|
+
|
|
122
|
+
For detailed usage guide: cron usage
|
|
123
|
+
`);
|
|
124
|
+
}
|
|
125
|
+
const args = process.argv.slice(2);
|
|
126
|
+
const command = args[0];
|
|
127
|
+
if (args.length > 0 && command !== 'daemon') {
|
|
128
|
+
(0, engine_1.logUsage)(args.join(' '));
|
|
129
|
+
}
|
|
130
|
+
const isDaemonForeground = command === 'daemon' && args.includes('--foreground');
|
|
131
|
+
async function runMain() {
|
|
132
|
+
if (hasFlag(args, '--version')) {
|
|
133
|
+
console.log(PKG_VERSION);
|
|
115
134
|
return;
|
|
116
135
|
}
|
|
117
|
-
if (
|
|
118
|
-
|
|
136
|
+
if (!command || command === 'help' || hasFlag(args, '--help', '-h')) {
|
|
137
|
+
printUsage();
|
|
119
138
|
return;
|
|
120
139
|
}
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
const status = s.enabled ? 'ON ' : 'OFF';
|
|
126
|
-
const name = (s.name ?? '-').substring(0, 14).padEnd(14);
|
|
127
|
-
const cron = s.cron.substring(0, 11).padEnd(11);
|
|
128
|
-
const cmd = s.command.substring(0, 26).padEnd(26);
|
|
129
|
-
console.log(`| ${s.id} | ${name} | ${cron} | ${status} | ${cmd} |`);
|
|
130
|
-
}
|
|
131
|
-
console.log('');
|
|
132
|
-
});
|
|
133
|
-
commander_1.program
|
|
134
|
-
.command('remove <id>')
|
|
135
|
-
.alias('rm')
|
|
136
|
-
.description('Remove a schedule')
|
|
137
|
-
.action((id) => {
|
|
138
|
-
(0, engine_1.ensureDaemonRunning)();
|
|
139
|
-
try {
|
|
140
|
-
const removed = (0, engine_1.removeSchedule)(id);
|
|
141
|
-
console.log(`Removed schedule: ${id}`);
|
|
142
|
-
console.log(`Cron: ${removed.cron}`);
|
|
143
|
-
console.log(`Command: ${removed.command}`);
|
|
144
|
-
}
|
|
145
|
-
catch (e) {
|
|
146
|
-
const err = e;
|
|
147
|
-
console.error(err.message);
|
|
148
|
-
process.exit(1);
|
|
149
|
-
}
|
|
150
|
-
});
|
|
151
|
-
commander_1.program
|
|
152
|
-
.command('enable <id>')
|
|
153
|
-
.description('Enable a schedule')
|
|
154
|
-
.action((id) => {
|
|
155
|
-
(0, engine_1.ensureDaemonRunning)();
|
|
156
|
-
try {
|
|
157
|
-
(0, engine_1.enableSchedule)(id);
|
|
158
|
-
console.log(`Enabled schedule: ${id}`);
|
|
159
|
-
}
|
|
160
|
-
catch (e) {
|
|
161
|
-
const err = e;
|
|
162
|
-
console.error(err.message);
|
|
163
|
-
process.exit(1);
|
|
164
|
-
}
|
|
165
|
-
});
|
|
166
|
-
commander_1.program
|
|
167
|
-
.command('disable <id>')
|
|
168
|
-
.description('Disable a schedule')
|
|
169
|
-
.action((id) => {
|
|
170
|
-
(0, engine_1.ensureDaemonRunning)();
|
|
171
|
-
try {
|
|
172
|
-
(0, engine_1.disableSchedule)(id);
|
|
173
|
-
console.log(`Disabled schedule: ${id}`);
|
|
174
|
-
}
|
|
175
|
-
catch (e) {
|
|
176
|
-
const err = e;
|
|
177
|
-
console.error(err.message);
|
|
178
|
-
process.exit(1);
|
|
179
|
-
}
|
|
180
|
-
});
|
|
181
|
-
commander_1.program
|
|
182
|
-
.command('update <id>')
|
|
183
|
-
.description('Update a schedule')
|
|
184
|
-
.option('-c, --cron <cron>', 'New cron expression')
|
|
185
|
-
.option('-C, --command <command>', 'New command')
|
|
186
|
-
.option('-n, --name <name>', 'New name')
|
|
187
|
-
.option('-m, --mode <mode>', 'Execution mode: query, execute, or command')
|
|
188
|
-
.option('-t, --timezone <tz>', 'Timezone (IANA format)')
|
|
189
|
-
.option('-d, --dir <directory>', 'Working directory')
|
|
190
|
-
.option('--timeout <ms>', 'Timeout in milliseconds')
|
|
191
|
-
.option('--allow-concurrent', 'Allow concurrent executions')
|
|
192
|
-
.option('--no-allow-concurrent', 'Disallow concurrent executions')
|
|
193
|
-
.action((id, options) => {
|
|
194
|
-
(0, engine_1.ensureDaemonRunning)();
|
|
195
|
-
try {
|
|
196
|
-
const updateOpts = {
|
|
197
|
-
cron: options.cron,
|
|
198
|
-
command: options.command,
|
|
199
|
-
name: options.name,
|
|
200
|
-
mode: options.mode,
|
|
201
|
-
timezone: options.timezone,
|
|
202
|
-
working_directory: options.dir,
|
|
203
|
-
timeout_ms: options.timeout ? parseInt(options.timeout, 10) : undefined,
|
|
204
|
-
allow_concurrent: options.allowConcurrent,
|
|
205
|
-
};
|
|
206
|
-
const { schedule, changes } = (0, engine_1.updateSchedule)(id, updateOpts);
|
|
207
|
-
if (changes.length === 0) {
|
|
208
|
-
console.log('No changes specified. Use --cron, --command, --name, etc.');
|
|
209
|
-
process.exit(1);
|
|
140
|
+
switch (command) {
|
|
141
|
+
case 'usage': {
|
|
142
|
+
showDetailedUsage();
|
|
143
|
+
break;
|
|
210
144
|
}
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
145
|
+
case 'add': {
|
|
146
|
+
const positional = [];
|
|
147
|
+
for (let i = 1; i < args.length; i++) {
|
|
148
|
+
if (args[i].startsWith('-')) {
|
|
149
|
+
if (['--name', '-n', '--mode', '-m', '--timezone', '-t', '--dir', '-d', '--timeout'].includes(args[i])) {
|
|
150
|
+
i++;
|
|
151
|
+
}
|
|
152
|
+
continue;
|
|
153
|
+
}
|
|
154
|
+
positional.push(args[i]);
|
|
155
|
+
}
|
|
156
|
+
if (positional.length < 2) {
|
|
157
|
+
console.error('Usage: cron add <schedule> <command> [--name <name>] [--mode <mode>]');
|
|
158
|
+
process.exit(1);
|
|
159
|
+
}
|
|
160
|
+
const cronExpr = positional[0];
|
|
161
|
+
const cmd = positional.slice(1).join(' ');
|
|
162
|
+
const subArgs = args.slice(1);
|
|
163
|
+
(0, engine_1.ensureDaemonRunning)();
|
|
164
|
+
const schedule = (0, engine_1.addSchedule)(cronExpr, cmd, {
|
|
165
|
+
name: getOpt(subArgs, '--name', '-n'),
|
|
166
|
+
mode: getOpt(subArgs, '--mode', '-m'),
|
|
167
|
+
timezone: getOpt(subArgs, '--timezone', '-t'),
|
|
168
|
+
dir: getOpt(subArgs, '--dir', '-d'),
|
|
169
|
+
timeout: getOpt(subArgs, '--timeout'),
|
|
170
|
+
allowConcurrent: hasFlag(subArgs, '--allow-concurrent'),
|
|
171
|
+
});
|
|
172
|
+
console.log(`Schedule created: ${schedule.id}`);
|
|
173
|
+
console.log(`Cron: ${cronExpr} (${(0, engine_1.describeCron)(cronExpr)})`);
|
|
174
|
+
console.log(`Command: ${cmd}`);
|
|
175
|
+
console.log(`Mode: ${schedule.mode}`);
|
|
176
|
+
if (schedule.timezone)
|
|
177
|
+
console.log(`Timezone: ${schedule.timezone}`);
|
|
178
|
+
if (schedule.next_run)
|
|
179
|
+
console.log(`Next run: ${new Date(schedule.next_run).toLocaleString()}`);
|
|
180
|
+
break;
|
|
215
181
|
}
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
console.log(`Name: ${schedule.name ?? '-'}`);
|
|
242
|
-
console.log(`Cron: ${schedule.cron} (${(0, engine_1.describeCron)(schedule.cron)})`);
|
|
243
|
-
console.log(`Command: ${schedule.command}`);
|
|
244
|
-
console.log(`Mode: ${schedule.mode}`);
|
|
245
|
-
console.log(`Status: ${schedule.enabled ? 'Enabled' : 'Disabled'}`);
|
|
246
|
-
console.log(`Timezone: ${schedule.timezone ?? 'Local'}`);
|
|
247
|
-
console.log(`Working Dir: ${schedule.working_directory ?? 'Project root'}`);
|
|
248
|
-
console.log(`Timeout: ${schedule.timeout_ms / 1000}s`);
|
|
249
|
-
console.log(`Allow Concurrent: ${schedule.allow_concurrent ? 'Yes' : 'No'}`);
|
|
250
|
-
console.log('─'.repeat(40));
|
|
251
|
-
console.log(`Created: ${new Date(schedule.created_at).toLocaleString()}`);
|
|
252
|
-
console.log(`Updated: ${new Date(schedule.updated_at).toLocaleString()}`);
|
|
253
|
-
console.log(`Last Run: ${schedule.last_run ? new Date(schedule.last_run).toLocaleString() : 'Never'}`);
|
|
254
|
-
console.log(`Next Run: ${schedule.next_run ? new Date(schedule.next_run).toLocaleString() : 'Unknown'}`);
|
|
255
|
-
console.log(`Run Count: ${schedule.run_count ?? 0}`);
|
|
256
|
-
console.log('');
|
|
257
|
-
});
|
|
258
|
-
commander_1.program
|
|
259
|
-
.command('run <id>')
|
|
260
|
-
.description('Run a schedule immediately (for testing)')
|
|
261
|
-
.action(async (id) => {
|
|
262
|
-
(0, engine_1.ensureDaemonRunning)();
|
|
263
|
-
const schedules = (0, engine_1.loadSchedules)();
|
|
264
|
-
const schedule = schedules.find(s => s.id === id);
|
|
265
|
-
if (!schedule) {
|
|
266
|
-
console.error(`Schedule not found: ${id}`);
|
|
267
|
-
process.exit(1);
|
|
268
|
-
}
|
|
269
|
-
console.log(`Running schedule: ${id}`);
|
|
270
|
-
const result = await (0, engine_1.executeSchedule)(schedule);
|
|
271
|
-
console.log(`Result: ${result.success ? 'Success' : 'Failed'}`);
|
|
272
|
-
if (result.error)
|
|
273
|
-
console.log(`Error: ${result.error}`);
|
|
274
|
-
});
|
|
275
|
-
commander_1.program
|
|
276
|
-
.command('start')
|
|
277
|
-
.description('Start the cron daemon')
|
|
278
|
-
.action(() => {
|
|
279
|
-
if ((0, engine_1.isDaemonRunning)()) {
|
|
280
|
-
const status = (0, engine_1.getDaemonStatus)();
|
|
281
|
-
console.error(`Daemon already running (PID: ${status.pid ?? 'unknown'})`);
|
|
282
|
-
process.exit(1);
|
|
283
|
-
}
|
|
284
|
-
try {
|
|
285
|
-
const pid = (0, engine_1.startDaemon)();
|
|
286
|
-
console.log(`Cron daemon started (PID: ${pid})`);
|
|
287
|
-
console.log(`PID file: ${engine_1.DATA_PATHS.PID_FILE}`);
|
|
288
|
-
}
|
|
289
|
-
catch (e) {
|
|
290
|
-
const err = e;
|
|
291
|
-
console.error('Failed to start daemon:', err.message);
|
|
292
|
-
process.exit(1);
|
|
293
|
-
}
|
|
294
|
-
});
|
|
295
|
-
commander_1.program
|
|
296
|
-
.command('stop')
|
|
297
|
-
.description('Stop the cron daemon')
|
|
298
|
-
.action(() => {
|
|
299
|
-
try {
|
|
300
|
-
const stopped = (0, engine_1.stopDaemon)();
|
|
301
|
-
if (!stopped) {
|
|
302
|
-
console.error('Daemon not running');
|
|
303
|
-
process.exit(1);
|
|
182
|
+
case 'list':
|
|
183
|
+
case 'ls': {
|
|
184
|
+
const jsonOutput = hasFlag(args, '--json');
|
|
185
|
+
(0, engine_1.ensureDaemonRunning)();
|
|
186
|
+
const schedules = (0, engine_1.loadSchedules)();
|
|
187
|
+
if (jsonOutput) {
|
|
188
|
+
console.log(JSON.stringify(schedules, null, 2));
|
|
189
|
+
return;
|
|
190
|
+
}
|
|
191
|
+
if (schedules.length === 0) {
|
|
192
|
+
console.log('No schedules found.');
|
|
193
|
+
return;
|
|
194
|
+
}
|
|
195
|
+
console.log(`\nSchedules (${schedules.length}):\n`);
|
|
196
|
+
console.log('| ID | Name | Cron | Status | Command |');
|
|
197
|
+
console.log('|--------|----------------|-------------|--------|----------------------------|');
|
|
198
|
+
for (const s of schedules) {
|
|
199
|
+
const status = s.enabled ? 'ON ' : 'OFF';
|
|
200
|
+
const name = (s.name ?? '-').substring(0, 14).padEnd(14);
|
|
201
|
+
const cron = s.cron.substring(0, 11).padEnd(11);
|
|
202
|
+
const cmd = s.command.substring(0, 26).padEnd(26);
|
|
203
|
+
console.log(`| ${s.id} | ${name} | ${cron} | ${status} | ${cmd} |`);
|
|
204
|
+
}
|
|
205
|
+
console.log('');
|
|
206
|
+
break;
|
|
304
207
|
}
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
208
|
+
case 'remove':
|
|
209
|
+
case 'rm': {
|
|
210
|
+
const id = args[1];
|
|
211
|
+
if (!id) {
|
|
212
|
+
console.error('Usage: cron remove <id>');
|
|
213
|
+
process.exit(1);
|
|
214
|
+
}
|
|
215
|
+
(0, engine_1.ensureDaemonRunning)();
|
|
216
|
+
try {
|
|
217
|
+
const removed = (0, engine_1.removeSchedule)(id);
|
|
218
|
+
console.log(`Removed schedule: ${id}`);
|
|
219
|
+
console.log(`Cron: ${removed.cron}`);
|
|
220
|
+
console.log(`Command: ${removed.command}`);
|
|
221
|
+
}
|
|
222
|
+
catch (e) {
|
|
223
|
+
const err = e;
|
|
224
|
+
console.error(err.message);
|
|
225
|
+
process.exit(1);
|
|
226
|
+
}
|
|
227
|
+
break;
|
|
228
|
+
}
|
|
229
|
+
case 'enable': {
|
|
230
|
+
const id = args[1];
|
|
231
|
+
if (!id) {
|
|
232
|
+
console.error('Usage: cron enable <id>');
|
|
233
|
+
process.exit(1);
|
|
234
|
+
}
|
|
235
|
+
(0, engine_1.ensureDaemonRunning)();
|
|
236
|
+
try {
|
|
237
|
+
(0, engine_1.enableSchedule)(id);
|
|
238
|
+
console.log(`Enabled schedule: ${id}`);
|
|
239
|
+
}
|
|
240
|
+
catch (e) {
|
|
241
|
+
const err = e;
|
|
242
|
+
console.error(err.message);
|
|
243
|
+
process.exit(1);
|
|
244
|
+
}
|
|
245
|
+
break;
|
|
246
|
+
}
|
|
247
|
+
case 'disable': {
|
|
248
|
+
const id = args[1];
|
|
249
|
+
if (!id) {
|
|
250
|
+
console.error('Usage: cron disable <id>');
|
|
251
|
+
process.exit(1);
|
|
252
|
+
}
|
|
253
|
+
(0, engine_1.ensureDaemonRunning)();
|
|
254
|
+
try {
|
|
255
|
+
(0, engine_1.disableSchedule)(id);
|
|
256
|
+
console.log(`Disabled schedule: ${id}`);
|
|
257
|
+
}
|
|
258
|
+
catch (e) {
|
|
259
|
+
const err = e;
|
|
260
|
+
console.error(err.message);
|
|
261
|
+
process.exit(1);
|
|
262
|
+
}
|
|
263
|
+
break;
|
|
264
|
+
}
|
|
265
|
+
case 'update': {
|
|
266
|
+
const id = args[1];
|
|
267
|
+
if (!id) {
|
|
268
|
+
console.error('Usage: cron update <id> [--cron <expr>] [--command <cmd>] [--name <name>]');
|
|
269
|
+
process.exit(1);
|
|
270
|
+
}
|
|
271
|
+
const subArgs = args.slice(1);
|
|
272
|
+
(0, engine_1.ensureDaemonRunning)();
|
|
273
|
+
try {
|
|
274
|
+
const updateOpts = {
|
|
275
|
+
cron: getOpt(subArgs, '--cron', '-c'),
|
|
276
|
+
command: getOpt(subArgs, '--command', '-C'),
|
|
277
|
+
name: getOpt(subArgs, '--name', '-n'),
|
|
278
|
+
mode: getOpt(subArgs, '--mode', '-m'),
|
|
279
|
+
timezone: getOpt(subArgs, '--timezone', '-t'),
|
|
280
|
+
working_directory: getOpt(subArgs, '--dir', '-d'),
|
|
281
|
+
timeout_ms: getOpt(subArgs, '--timeout') ? parseInt(getOpt(subArgs, '--timeout'), 10) : undefined,
|
|
282
|
+
allow_concurrent: hasFlag(subArgs, '--allow-concurrent') ? true : hasFlag(subArgs, '--no-allow-concurrent') ? false : undefined,
|
|
283
|
+
};
|
|
284
|
+
const { schedule, changes } = (0, engine_1.updateSchedule)(id, updateOpts);
|
|
285
|
+
if (changes.length === 0) {
|
|
286
|
+
console.log('No changes specified. Use --cron, --command, --name, etc.');
|
|
287
|
+
process.exit(1);
|
|
288
|
+
}
|
|
289
|
+
console.log(`Updated schedule: ${id}`);
|
|
290
|
+
changes.forEach(c => console.log(` ${c}`));
|
|
291
|
+
if (schedule.next_run) {
|
|
292
|
+
console.log(`Next run: ${new Date(schedule.next_run).toLocaleString()}`);
|
|
293
|
+
}
|
|
294
|
+
}
|
|
295
|
+
catch (e) {
|
|
296
|
+
const err = e;
|
|
297
|
+
console.error(err.message);
|
|
298
|
+
process.exit(1);
|
|
299
|
+
}
|
|
300
|
+
break;
|
|
301
|
+
}
|
|
302
|
+
case 'info': {
|
|
303
|
+
const id = args[1];
|
|
304
|
+
if (!id) {
|
|
305
|
+
console.error('Usage: cron info <id>');
|
|
306
|
+
process.exit(1);
|
|
307
|
+
}
|
|
308
|
+
const jsonOutput = hasFlag(args, '--json');
|
|
309
|
+
(0, engine_1.ensureDaemonRunning)();
|
|
310
|
+
const schedules = (0, engine_1.loadSchedules)();
|
|
311
|
+
const schedule = schedules.find(s => s.id === id);
|
|
312
|
+
if (!schedule) {
|
|
313
|
+
console.error(`Schedule not found: ${id}`);
|
|
314
|
+
process.exit(1);
|
|
315
|
+
}
|
|
316
|
+
if (jsonOutput) {
|
|
317
|
+
console.log(JSON.stringify(schedule, null, 2));
|
|
318
|
+
return;
|
|
319
|
+
}
|
|
320
|
+
console.log(`\nSchedule: ${schedule.id}`);
|
|
321
|
+
console.log('─'.repeat(40));
|
|
322
|
+
console.log(`Name: ${schedule.name ?? '-'}`);
|
|
323
|
+
console.log(`Cron: ${schedule.cron} (${(0, engine_1.describeCron)(schedule.cron)})`);
|
|
324
|
+
console.log(`Command: ${schedule.command}`);
|
|
325
|
+
console.log(`Mode: ${schedule.mode}`);
|
|
326
|
+
console.log(`Status: ${schedule.enabled ? 'Enabled' : 'Disabled'}`);
|
|
327
|
+
console.log(`Timezone: ${schedule.timezone ?? 'Local'}`);
|
|
328
|
+
console.log(`Working Dir: ${schedule.working_directory ?? 'Project root'}`);
|
|
329
|
+
console.log(`Timeout: ${schedule.timeout_ms / 1000}s`);
|
|
330
|
+
console.log(`Allow Concurrent: ${schedule.allow_concurrent ? 'Yes' : 'No'}`);
|
|
331
|
+
console.log('─'.repeat(40));
|
|
332
|
+
console.log(`Created: ${new Date(schedule.created_at).toLocaleString()}`);
|
|
333
|
+
console.log(`Updated: ${new Date(schedule.updated_at).toLocaleString()}`);
|
|
334
|
+
console.log(`Last Run: ${schedule.last_run ? new Date(schedule.last_run).toLocaleString() : 'Never'}`);
|
|
335
|
+
console.log(`Next Run: ${schedule.next_run ? new Date(schedule.next_run).toLocaleString() : 'Unknown'}`);
|
|
336
|
+
console.log(`Run Count: ${schedule.run_count ?? 0}`);
|
|
337
|
+
console.log('');
|
|
338
|
+
break;
|
|
339
|
+
}
|
|
340
|
+
case 'run': {
|
|
341
|
+
const id = args[1];
|
|
342
|
+
if (!id) {
|
|
343
|
+
console.error('Usage: cron run <id>');
|
|
344
|
+
process.exit(1);
|
|
345
|
+
}
|
|
346
|
+
(0, engine_1.ensureDaemonRunning)();
|
|
347
|
+
const schedules = (0, engine_1.loadSchedules)();
|
|
348
|
+
const schedule = schedules.find(s => s.id === id);
|
|
349
|
+
if (!schedule) {
|
|
350
|
+
console.error(`Schedule not found: ${id}`);
|
|
351
|
+
process.exit(1);
|
|
352
|
+
}
|
|
353
|
+
console.log(`Running schedule: ${id}`);
|
|
354
|
+
const result = await (0, engine_1.executeSchedule)(schedule);
|
|
355
|
+
console.log(`Result: ${result.success ? 'Success' : 'Failed'}`);
|
|
356
|
+
if (result.error)
|
|
357
|
+
console.log(`Error: ${result.error}`);
|
|
358
|
+
break;
|
|
359
|
+
}
|
|
360
|
+
case 'start': {
|
|
361
|
+
if ((0, engine_1.isDaemonRunning)()) {
|
|
362
|
+
const status = (0, engine_1.getDaemonStatus)();
|
|
363
|
+
console.error(`Daemon already running (PID: ${status.pid ?? 'unknown'})`);
|
|
364
|
+
process.exit(1);
|
|
365
|
+
}
|
|
366
|
+
try {
|
|
367
|
+
const pid = (0, engine_1.startDaemon)();
|
|
368
|
+
console.log(`Cron daemon started (PID: ${pid})`);
|
|
369
|
+
console.log(`PID file: ${engine_1.DATA_PATHS.PID_FILE}`);
|
|
370
|
+
}
|
|
371
|
+
catch (e) {
|
|
372
|
+
const err = e;
|
|
373
|
+
console.error('Failed to start daemon:', err.message);
|
|
374
|
+
process.exit(1);
|
|
375
|
+
}
|
|
376
|
+
break;
|
|
377
|
+
}
|
|
378
|
+
case 'stop': {
|
|
379
|
+
try {
|
|
380
|
+
const stopped = (0, engine_1.stopDaemon)();
|
|
381
|
+
if (!stopped) {
|
|
382
|
+
console.error('Daemon not running');
|
|
383
|
+
process.exit(1);
|
|
384
|
+
}
|
|
385
|
+
console.log('Cron daemon stopped');
|
|
386
|
+
}
|
|
387
|
+
catch (e) {
|
|
388
|
+
const err = e;
|
|
389
|
+
console.error('Failed to stop daemon:', err.message);
|
|
390
|
+
process.exit(1);
|
|
391
|
+
}
|
|
392
|
+
break;
|
|
393
|
+
}
|
|
394
|
+
case 'status': {
|
|
395
|
+
const jsonOutput = hasFlag(args, '--json');
|
|
396
|
+
const status = (0, engine_1.getDaemonStatus)();
|
|
397
|
+
if (jsonOutput) {
|
|
398
|
+
console.log(JSON.stringify(status, null, 2));
|
|
399
|
+
return;
|
|
400
|
+
}
|
|
401
|
+
if (status.running && status.pid) {
|
|
402
|
+
console.log(`Daemon is running (PID: ${status.pid})`);
|
|
403
|
+
if (status.started_at) {
|
|
404
|
+
console.log(`Started: ${new Date(status.started_at).toLocaleString()}`);
|
|
405
|
+
}
|
|
406
|
+
}
|
|
407
|
+
else {
|
|
408
|
+
console.log('Daemon is not running');
|
|
409
|
+
}
|
|
410
|
+
console.log(`Schedules: ${status.schedules.enabled}/${status.schedules.total} enabled`);
|
|
411
|
+
break;
|
|
412
|
+
}
|
|
413
|
+
case 'daemon': {
|
|
414
|
+
if (hasFlag(args, '--foreground')) {
|
|
415
|
+
(0, engine_1.runDaemonForeground)();
|
|
416
|
+
}
|
|
417
|
+
else {
|
|
418
|
+
console.log('Use "cron start" to start the daemon');
|
|
419
|
+
}
|
|
420
|
+
break;
|
|
421
|
+
}
|
|
422
|
+
default: {
|
|
423
|
+
console.error(`Unknown command: ${command}`);
|
|
424
|
+
printUsage();
|
|
425
|
+
process.exit(1);
|
|
327
426
|
}
|
|
328
427
|
}
|
|
329
|
-
else {
|
|
330
|
-
console.log('Daemon is not running');
|
|
331
|
-
}
|
|
332
|
-
console.log(`Schedules: ${status.schedules.enabled}/${status.schedules.total} enabled`);
|
|
333
|
-
});
|
|
334
|
-
commander_1.program
|
|
335
|
-
.command('daemon')
|
|
336
|
-
.description('Internal daemon command')
|
|
337
|
-
.option('--foreground', 'Run in foreground')
|
|
338
|
-
.action((options) => {
|
|
339
|
-
if (options.foreground) {
|
|
340
|
-
(0, engine_1.runDaemonForeground)();
|
|
341
|
-
}
|
|
342
|
-
else {
|
|
343
|
-
console.log('Use "cron start" to start the daemon');
|
|
344
|
-
}
|
|
345
|
-
});
|
|
346
|
-
const args = process.argv.slice(2);
|
|
347
|
-
if (args.length > 0 && args[0] !== 'daemon') {
|
|
348
|
-
(0, engine_1.logUsage)(args.join(' '));
|
|
349
|
-
}
|
|
350
|
-
const isDaemonForeground = args[0] === 'daemon' && args.includes('--foreground');
|
|
351
|
-
async function runMain() {
|
|
352
|
-
await commander_1.program.parseAsync(process.argv);
|
|
353
428
|
}
|
|
354
429
|
const tracer = isDaemonForeground ? null : loadTracer();
|
|
355
430
|
if (tracer) {
|
package/dist/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../cli.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../cli.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@crewx/cron",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.3",
|
|
4
4
|
"description": "Cron Scheduler for CrewX - Schedule and execute crewx commands automatically",
|
|
5
5
|
"type": "commonjs",
|
|
6
6
|
"main": "dist/src/engine.js",
|
|
@@ -12,7 +12,7 @@
|
|
|
12
12
|
}
|
|
13
13
|
},
|
|
14
14
|
"bin": { "cron": "./dist/cli.js" },
|
|
15
|
-
"files": ["dist"],
|
|
15
|
+
"files": ["dist", "SKILL.md"],
|
|
16
16
|
"scripts": {
|
|
17
17
|
"build": "tsc",
|
|
18
18
|
"dev": "ts-node cli.ts",
|
|
@@ -20,9 +20,7 @@
|
|
|
20
20
|
},
|
|
21
21
|
"keywords": ["crewx", "cron", "scheduler", "automation"],
|
|
22
22
|
"license": "MIT",
|
|
23
|
-
"dependencies": {
|
|
24
|
-
"commander": "^12.0.0"
|
|
25
|
-
},
|
|
23
|
+
"dependencies": {},
|
|
26
24
|
"devDependencies": {
|
|
27
25
|
"@types/node": "^20.0.0",
|
|
28
26
|
"ts-node": "^10.9.0",
|