summaryrefslogtreecommitdiff
path: root/packages/web-util/src/cli.ts
blob: 59cfe99894e74c9a9c256d5bc29e92914941b0b1 (plain)
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

import {
  clk, setGlobalLogLevelFromString
} from "@gnu-taler/taler-util";
import { serve } from "./serve.js";


export const walletCli = clk
  .program("wallet", {
    help: "Command line interface for the GNU Taler wallet.",
  })
  .maybeOption("log", ["-L", "--log"], clk.STRING, {
    help: "configure log level (NONE, ..., TRACE)",
    onPresentHandler: (x) => {
      setGlobalLogLevelFromString(x);
    },
  })
  .flag("version", ["-v", "--version"], {
    onPresentHandler: printVersion,
  })
  .flag("verbose", ["-V", "--verbose"], {
    help: "Enable verbose output.",
  })

walletCli
  .subcommand("serve", "serve", { help: "Create a server." })
  .maybeOption("folder", ["-F", "--folder"], clk.STRING, {
    help: "should complete",
    // default: "./dist"
  })
  .maybeOption("port", ["-P", "--port"], clk.INT, {
    help: "should complete",
    // default: 8000
  })
  .flag("development", ["-D", "--dev"], {
    help: "should complete",
  })
  .action(async (args) => {
    return serve({
      folder: args.serve.folder || "./dist",
      port: args.serve.port || 8000,
      development: args.serve.development
    })
  }
  );



declare const __VERSION__: string;
function printVersion(): void {
  console.log(__VERSION__);
  process.exit(0);
}

export function main(): void {
  walletCli.run();
}