openlearn-next 0.1.0 → 0.1.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/cli.cjs +48 -0
- package/package.json +3 -3
- package/cli.mjs +0 -54
package/cli.cjs
ADDED
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
|
|
3
|
+
const { spawn } = require('node:child_process');
|
|
4
|
+
const path = require('node:path');
|
|
5
|
+
const fs = require('node:fs');
|
|
6
|
+
const os = require('node:os');
|
|
7
|
+
|
|
8
|
+
const args = process.argv.slice(2);
|
|
9
|
+
let port = null;
|
|
10
|
+
|
|
11
|
+
for (let i = 0; i < args.length; i++) {
|
|
12
|
+
if (args[i] === '-p' || args[i] === '--port') {
|
|
13
|
+
port = args[++i];
|
|
14
|
+
} else if (args[i] === '-h' || args[i] === '--help') {
|
|
15
|
+
console.log(`Usage: npx openlearn-next [options]
|
|
16
|
+
|
|
17
|
+
Options:
|
|
18
|
+
-p, --port <port> Port to listen on (default: 9000)
|
|
19
|
+
-h, --help Show this help
|
|
20
|
+
|
|
21
|
+
Environment:
|
|
22
|
+
OPENLEARN_DB_PATH SQLite database path (default: ~/openlearn-next/data.db)
|
|
23
|
+
GEMINI_API_KEY Google Gemini API key for AI features
|
|
24
|
+
`);
|
|
25
|
+
process.exit(0);
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
if (port) process.env.PORT = port;
|
|
30
|
+
|
|
31
|
+
if (!process.env.OPENLEARN_DB_PATH) {
|
|
32
|
+
const dataDir = path.join(os.homedir(), 'openlearn-next');
|
|
33
|
+
fs.mkdirSync(dataDir, { recursive: true });
|
|
34
|
+
process.env.OPENLEARN_DB_PATH = path.join(dataDir, 'data.db');
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
console.log('[openlearn-next] PORT=' + (process.env.PORT || '9000'));
|
|
38
|
+
console.log('[openlearn-next] DB=' + process.env.OPENLEARN_DB_PATH);
|
|
39
|
+
|
|
40
|
+
const serverPath = path.join(__dirname, 'dist', 'server.cjs');
|
|
41
|
+
const child = spawn('node', [serverPath], {
|
|
42
|
+
stdio: 'inherit',
|
|
43
|
+
env: { ...process.env },
|
|
44
|
+
});
|
|
45
|
+
|
|
46
|
+
child.on('exit', function(code) {
|
|
47
|
+
process.exit(code || 0);
|
|
48
|
+
});
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "openlearn-next",
|
|
3
3
|
"private": false,
|
|
4
|
-
"version": "0.1.
|
|
4
|
+
"version": "0.1.1",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"scripts": {
|
|
7
7
|
"dev": "npx tsx --no-cache server.ts",
|
|
@@ -78,14 +78,14 @@
|
|
|
78
78
|
"@vitejs/plugin-react": "^5.0.4"
|
|
79
79
|
},
|
|
80
80
|
"bin": {
|
|
81
|
-
"openlearn-next": "./cli.
|
|
81
|
+
"openlearn-next": "./cli.cjs"
|
|
82
82
|
},
|
|
83
83
|
"files": [
|
|
84
84
|
"dist/index.html",
|
|
85
85
|
"dist/server.cjs",
|
|
86
86
|
"dist/assets/",
|
|
87
87
|
"dist/plugins/",
|
|
88
|
-
"cli.
|
|
88
|
+
"cli.cjs",
|
|
89
89
|
"package.json",
|
|
90
90
|
"README.md"
|
|
91
91
|
],
|
package/cli.mjs
DELETED
|
@@ -1,54 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env node
|
|
2
|
-
|
|
3
|
-
import { spawn } from 'node:child_process';
|
|
4
|
-
import { fileURLToPath } from 'node:url';
|
|
5
|
-
import { dirname, join } from 'node:path';
|
|
6
|
-
import { mkdirSync } from 'node:fs';
|
|
7
|
-
import os from 'node:os';
|
|
8
|
-
|
|
9
|
-
const __dirname = dirname(fileURLToPath(import.meta.url));
|
|
10
|
-
|
|
11
|
-
// ── CLI args ───────────────────────────────────────────────────────
|
|
12
|
-
const args = process.argv.slice(2);
|
|
13
|
-
let port = null;
|
|
14
|
-
|
|
15
|
-
for (let i = 0; i < args.length; i++) {
|
|
16
|
-
if (args[i] === '-p' || args[i] === '--port') {
|
|
17
|
-
port = args[++i];
|
|
18
|
-
} else if (args[i] === '-h' || args[i] === '--help') {
|
|
19
|
-
console.log(`Usage: npx openlearn-next [options]
|
|
20
|
-
|
|
21
|
-
Options:
|
|
22
|
-
-p, --port <port> Port to listen on (default: 9000)
|
|
23
|
-
-h, --help Show this help
|
|
24
|
-
|
|
25
|
-
Environment:
|
|
26
|
-
OPENLEARN_DB_PATH SQLite database path (default: ~/openlearn-next/data.db)
|
|
27
|
-
GEMINI_API_KEY Google Gemini API key for AI features
|
|
28
|
-
`);
|
|
29
|
-
process.exit(0);
|
|
30
|
-
}
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
// ── Env setup ──────────────────────────────────────────────────────
|
|
34
|
-
if (port) process.env.PORT = port;
|
|
35
|
-
|
|
36
|
-
if (!process.env.OPENLEARN_DB_PATH) {
|
|
37
|
-
const dataDir = join(os.homedir(), 'openlearn-next');
|
|
38
|
-
mkdirSync(dataDir, { recursive: true });
|
|
39
|
-
process.env.OPENLEARN_DB_PATH = join(dataDir, 'data.db');
|
|
40
|
-
}
|
|
41
|
-
|
|
42
|
-
console.log(`[openlearn-next] PORT=${process.env.PORT || '9000'}`);
|
|
43
|
-
console.log(`[openlearn-next] DB=${process.env.OPENLEARN_DB_PATH}`);
|
|
44
|
-
|
|
45
|
-
// ── Start server ───────────────────────────────────────────────────
|
|
46
|
-
const serverPath = join(__dirname, 'dist', 'server.cjs');
|
|
47
|
-
const child = spawn('node', [serverPath], {
|
|
48
|
-
stdio: 'inherit',
|
|
49
|
-
env: { ...process.env },
|
|
50
|
-
});
|
|
51
|
-
|
|
52
|
-
child.on('exit', (code) => {
|
|
53
|
-
process.exit(code || 0);
|
|
54
|
-
});
|