-
Notifications
You must be signed in to change notification settings - Fork 24
Expand file tree
/
Copy pathcli.js
More file actions
executable file
·89 lines (78 loc) · 2.36 KB
/
Copy pathcli.js
File metadata and controls
executable file
·89 lines (78 loc) · 2.36 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
#!/usr/bin/env node
const args = process.argv.slice(2);
const command = args[0];
import bundle from "./bundle.js";
import createApp from "./createApp/main.js";
import generateModels from "./generateModels.js";
import createPlugin from "./createPlugin/main.js";
import createComponent from "./createCustomComponent/main.js";
import createResource from "./createResource/main.js";
import chalk from "chalk";
import path from "path";
import fs from "fs";
import { fileURLToPath } from 'url';
function showHelp() {
console.log(
chalk.white("Available commands:\n") +
chalk.green(' create-app') + chalk.white(' Create a new AdminForth app\n') +
chalk.green(' create-plugin') + chalk.white(' Create a plugin for your AdminForth app\n') +
chalk.green(' generate-models') + chalk.white(' Generate TypeScript models from your databases\n') +
chalk.green(' bundle') + chalk.white(' Bundles your AdminForth app SPA for production\n') +
chalk.green(' component') + chalk.white(' Scaffold a custom Vue component\n') +
chalk.green(' resource') + chalk.white(' Scaffold a custom resource\n')
);
}
export function currentFileDir(importMetaUrl) {
const filePath = fileURLToPath(importMetaUrl);
const fileDir = path.dirname(filePath);
return fileDir;
}
export function getVersion() {
const ADMIN_FORTH_ABSOLUTE_PATH = path.join(currentFileDir(import.meta.url), '..');
const package_json = JSON.parse(fs.readFileSync(path.join(ADMIN_FORTH_ABSOLUTE_PATH, 'package.json'), 'utf8'));
const ADMINFORTH_VERSION = package_json.version;
return ADMINFORTH_VERSION;
}
function showVersion() {
const ADMINFORTH_VERSION = getVersion();
console.log(
chalk.white('AdminForth CLI version: ') +
chalk.cyan.bold(ADMINFORTH_VERSION)
);
}
switch (command) {
case "create-app":
createApp(args);
break;
case "create-plugin":
createPlugin(args);
break;
case "generate-models":
generateModels();
break;
case "bundle":
bundle();
break;
case "component":
createComponent(args);
break;
case "resource":
createResource(args);
break;
case "help":
case "--help":
case "-h":
showHelp();
break;
case "--version":
case "version":
case "-v":
showVersion();
break;
default: {
console.log(
"Unknown command."
);
showHelp();
}
}