Skip to content

Commit d7c0fdc

Browse files
✨ Add basic CLI
1 parent bce28bf commit d7c0fdc

3 files changed

Lines changed: 45 additions & 12 deletions

File tree

package.json

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@staart/site",
3-
"version": "0.9.40",
3+
"version": "0.9.41",
44
"main": "dist/index.js",
55
"bin": "./dist/index.js",
66
"repository": "git@github.com:staart/site",
@@ -34,6 +34,7 @@
3434
"html-minifier": "^4.0.0",
3535
"live-server": "^1.2.1",
3636
"marked": "^0.7.0",
37+
"minimist": "^1.2.0",
3738
"recursive-readdir": "^2.2.2",
3839
"sass": "^1.23.0",
3940
"signale": "^1.4.0"
@@ -44,6 +45,7 @@
4445
"@types/git-url-parse": "^9.0.0",
4546
"@types/html-minifier": "^3.5.3",
4647
"@types/marked": "^0.6.5",
48+
"@types/minimist": "^1.2.0",
4749
"@types/node": "^12.11.1",
4850
"@types/recursive-readdir": "^2.2.0",
4951
"@types/sass": "^1.16.0",

src/index.ts

Lines changed: 37 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,44 @@
1-
import { success, error } from "signale";
1+
import { success, error, info } from "signale";
22
import { generate } from "./generator";
3+
import { readJsonSync } from "fs-extra";
4+
import { join } from "path";
5+
import minimist from "minimist";
6+
7+
const args = minimist(process.argv.slice(2), {
8+
boolean: ["v", "version", "d", "dev", "h", "help"]
9+
});
310

411
const staartSite = async () => {
512
return await generate();
613
};
714

8-
const startTime = new Date().getTime();
9-
staartSite()
10-
.then(() =>
11-
success(
12-
`Start Site built in ${(
13-
(new Date().getTime() - startTime) /
14-
1000
15-
).toFixed(2)}s`
15+
if (args.version) {
16+
info(
17+
`Staart Site version: ${
18+
readJsonSync(join(__dirname, "..", "package.json")).version
19+
}`
20+
);
21+
process.exit(0);
22+
} else if (args.help) {
23+
process.stdout.write(`usage: @staart/site [options]
24+
Options:
25+
-v, --version Print the version
26+
-h, --help Print this help
27+
Examples:
28+
$ @staart/site
29+
$ @staart/site -v
30+
`);
31+
process.exit(0);
32+
} else {
33+
const startTime = new Date().getTime();
34+
staartSite()
35+
.then(() =>
36+
success(
37+
`Start Site built in ${(
38+
(new Date().getTime() - startTime) /
39+
1000
40+
).toFixed(2)}s`
41+
)
1642
)
17-
)
18-
.catch(err => error(err));
43+
.catch(err => error(err));
44+
}

yarn.lock

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -63,6 +63,11 @@
6363
resolved "https://registry.yarnpkg.com/@types/marked/-/marked-0.6.5.tgz#3cf2a56ef615dad24aaf99784ef90a9eba4e29d8"
6464
integrity sha512-6kBKf64aVfx93UJrcyEZ+OBM5nGv4RLsI6sR1Ar34bpgvGVRoyTgpxn4ZmtxOM5aDTAaaznYuYUH8bUX3Nk3YA==
6565

66+
"@types/minimist@^1.2.0":
67+
version "1.2.0"
68+
resolved "https://registry.yarnpkg.com/@types/minimist/-/minimist-1.2.0.tgz#69a23a3ad29caf0097f06eda59b361ee2f0639f6"
69+
integrity sha1-aaI6OtKcrwCX8G7aWbNh7i8GOfY=
70+
6671
"@types/node@*", "@types/node@^12.11.1":
6772
version "12.11.1"
6873
resolved "https://registry.yarnpkg.com/@types/node/-/node-12.11.1.tgz#1fd7b821f798b7fa29f667a1be8f3442bb8922a3"

0 commit comments

Comments
 (0)