-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathmain.ts
33 lines (31 loc) · 3.75 KB
/
main.ts
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
#!/usr/bin/env node
import { normalize, join } from "path";
import { Command } from "commander";
import { Version } from "./version";
import { initCommand } from "./command/init";
const program = new Command('jsgenerate')
program
.command(`version`)
.description(`display version`)
.action(() => {
console.log(Version)
})
program.command(`complete`)
.description(`generate bash complete code`)
.action(() => {
console.log(
Buffer.from(
"IyEvYmluL2Jhc2gKZnVuY3Rpb24gX19raW5nMDExX2pzZ2VuZXJhdGVfYmFzZSgpewogICAgbG9jYWwgY3VyPSR7Q09NUF9XT1JEU1tDT01QX0NXT1JEXX0KICAgIGlmIFsgMiA9PSAkQ09NUF9DV09SRCBdO3RoZW4KICAgICAgICBsb2NhbCBvcHRzPSItaCAtLWhlbHAiCiAgICAgICAgQ09NUFJFUExZPSggJChjb21wZ2VuIC1XICIke29wdHN9IiAtLSAke2N1cn0pICkKICAgIGZpCn0KZnVuY3Rpb24gX19raW5nMDExX2pzZ2VuZXJhdGVfaGVscCgpewogICAgbG9jYWwgY3VyPSR7Q09NUF9XT1JEU1tDT01QX0NXT1JEXX0KICAgIGlmIFsgMiA9PSAkQ09NUF9DV09SRCBdO3RoZW4KICAgICAgICBsb2NhbCBvcHRzPSJ2ZXJzaW9uIGNvbXBsZXRlIGluaXQgaGVscCAtaCAtLWhlbHAiCiAgICAgICAgQ09NUFJFUExZPSggJChjb21wZ2VuIC1XICIke29wdHN9IiAtLSAke2N1cn0pICkKICAgIGZpCn0KZnVuY3Rpb24gX19raW5nMDExX2pzZ2VuZXJhdGVfaW5pdF9vcHRpb24oKXsKICAgIGxvY2FsIGN1cj0ke0NPTVBfV09SRFNbQ09NUF9DV09SRF19CiAgICBsb2NhbCBvcHRzPSctbiAtLW5hbWUgLXAgLS1wYWNrYWdlIC10IC0tdGFnIC1oIC0taGVscCcKICAgIGNhc2UgJHtDT01QX1dPUkRTW0NPTVBfQ1dPUkQtMV19IGluCiAgICAgICAgLW58LS1uYW1lfC1wfC0tcGFja2FnZXwtaHwtLWhlbHApCgogICAgICAgIDs7CiAgICAgICAgLXR8LS10YWcpCiAgICAgICAgICAgIGxvY2FsIG9wdHNfaXRlbXM9YGpzZ2VuZXJhdGUgaW5pdCAke0NPTVBfV09SRFNbMl19IC0tbGlzdC10YWcgMj4gL2Rldi9udWxsYAogICAgICAgICAgICBDT01QUkVQTFk9KCAkKGNvbXBnZW4gLVcgIiR7b3B0c19pdGVtc30iIC0tICR7Y3VyfSkgKQogICAgICAgIDs7CgogICAgICAgICMgZGVmYXVsdAogICAgICAgICopCiAgICAgICAgICAgIENPTVBSRVBMWT0oICQoY29tcGdlbiAtVyAiJHtvcHRzfSIgLS0gJHtjdXJ9KSApCiAgICAgICAgOzsKICAgIGVzYWMKfQpmdW5jdGlvbiBfX2tpbmcwMTFfanNnZW5lcmF0ZV9pbml0KCl7CiAgICBsb2NhbCBjdXI9JHtDT01QX1dPUkRTW0NPTVBfQ1dPUkRdfQogICAgaWYgWyAyID09ICRDT01QX0NXT1JEIF07dGhlbgogICAgICAgIGxvY2FsIG9wdHNfaXRlbXM9YGpzZ2VuZXJhdGUgaW5pdCAtLWxpc3QgMj4gL2Rldi9udWxsYAogICAgICAgIGxvY2FsIG9wdHM9Ii0tbGlzdCAtaCAtLWhlbHAiCiAgICAgICAgQ09NUFJFUExZPSggJChjb21wZ2VuIC1XICIke29wdHNfaXRlbXN9ICR7b3B0c30iIC0tICR7Y3VyfSkgKQogICAgZWxzZSAKICAgICAgICBsb2NhbCBrZXk9JHtDT01QX1dPUkRTWzJdfQogICAgICAgIGxvY2FsIG9wdHNfaXRlbXM9YGpzZ2VuZXJhdGUgaW5pdCAtLWxpc3QgMj4gL2Rldi9udWxsYAogICAgICAgIGlmIFtbICIkb3B0c19pdGVtcyIgPT0gKiIka2V5IiogXV07dGhlbgogICAgICAgICAgICBfX2tpbmcwMTFfanNnZW5lcmF0ZV9pbml0X29wdGlvbgogICAgICAgIGZpCiAgICBmaQp9CmZ1bmN0aW9uIF9fa2luZzAxMV9qc2dlbmVyYXRlKCl7CiAgICAjIOeNsuWPliDmraPlnKjovLjlhaXnmoQg5Y+D5pW4CiAgICBsb2NhbCBjdXI9JHtDT01QX1dPUkRTW0NPTVBfQ1dPUkRdfQogICAgIyAg6Ly45YWlIOesrDHlgIsg5Y+D5pW4CiAgICBpZiBbIDEgPT0gJENPTVBfQ1dPUkQgXTt0aGVuCiAgICAgICAgbG9jYWwgb3B0cz0idmVyc2lvbiBjb21wbGV0ZSBpbml0IGhlbHAgLWggLS1oZWxwIgogICAgICAgIENPTVBSRVBMWT0oICQoY29tcGdlbiAtVyAiJHtvcHRzfSIgLS0gJHtjdXJ9KSApCiAgICBlbHNlCiAgICAgICAgICMgc3dpdGNoIOWtkOWRveS7pAogICAgICAgIGNhc2UgJHtDT01QX1dPUkRTWzFdfSBpbgogICAgICAgICAgICB2ZXJzaW9uKQogICAgICAgICAgICAgICAgX19raW5nMDExX2pzZ2VuZXJhdGVfYmFzZQogICAgICAgICAgICA7OwogICAgICAgICAgICBjb21wbGV0ZSkKICAgICAgICAgICAgICAgIF9fa2luZzAxMV9qc2dlbmVyYXRlX2Jhc2UKICAgICAgICAgICAgOzsKICAgICAgICAgICAgaGVscCkKICAgICAgICAgICAgICAgIF9fa2luZzAxMV9qc2dlbmVyYXRlX2hlbHAKICAgICAgICAgICAgOzsKICAgICAgICAgICAgaW5pdCkKICAgICAgICAgICAgICAgIF9fa2luZzAxMV9qc2dlbmVyYXRlX2luaXQKICAgICAgICAgICAgOzsKICAgICAgICBlc2FjCiAgICBmaQp9CmNvbXBsZXRlIC1GIF9fa2luZzAxMV9qc2dlbmVyYXRlIGpzZ2VuZXJhdGU=",
"base64",
).toString("utf8")
)
})
let root = process.env["JS_GENERATE_TEMPLATE"]
if (root == undefined) {
root = process.env.HOME || process.env.USERPROFILE
root = normalize(join(root as string, ".jsgenerate"))
}
(async function () {
await initCommand(program as any, join(root, `init`))
program.parse(process.argv)
})()