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.
Files changed (3) hide show
  1. package/cli.cjs +48 -0
  2. package/package.json +3 -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.0",
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.mjs"
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.mjs",
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
- });