From c93ff8fcec1005af73818090e1ba8adbde22b152 Mon Sep 17 00:00:00 2001 From: Ben Zhang Date: Tue, 31 Dec 2024 05:58:22 +0000 Subject: [PATCH 1/4] Support reading data from stdin --- cli/index.ts | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/cli/index.ts b/cli/index.ts index 15f2af2..c2f9e75 100644 --- a/cli/index.ts +++ b/cli/index.ts @@ -32,7 +32,12 @@ program .action(async (template_name, options) => { let data = {}; if (options.data) { - data = JSON.parse(options.data); + if (options.data === '-') { + // Read from stdin + data = JSON.parse(fs.readFileSync(0, 'utf-8')); + } else { + data = JSON.parse(options.data); + } } const template = await getTemplate(template_name, [data]); From a4e4529b43e554c4ca6b20e98fc1005861eb81b8 Mon Sep 17 00:00:00 2001 From: Ben Zhang Date: Tue, 31 Dec 2024 06:10:35 +0000 Subject: [PATCH 2/4] Debug dataraw --- cli/index.ts | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/cli/index.ts b/cli/index.ts index c2f9e75..d9dcfa4 100644 --- a/cli/index.ts +++ b/cli/index.ts @@ -34,7 +34,9 @@ program if (options.data) { if (options.data === '-') { // Read from stdin - data = JSON.parse(fs.readFileSync(0, 'utf-8')); + const dataraw = fs.readFileSync(0, 'utf-8'); + console.log("dataraw", dataraw); + data = JSON.parse(dataraw); } else { data = JSON.parse(options.data); } From 267d15be31f8891d2001332a8b16578e3babe578 Mon Sep 17 00:00:00 2001 From: Ben Zhang Date: Tue, 31 Dec 2024 06:15:17 +0000 Subject: [PATCH 3/4] Add dev instructions --- README.md | 23 ++++++++++++++++++++++- 1 file changed, 22 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 429f20e..839551c 100644 --- a/README.md +++ b/README.md @@ -13,6 +13,8 @@ A collection of email templates used by [WATcloud](https://cloud.watonomous.ca/) ## Development +### Emails + ```sh npm ci npm run dev @@ -20,12 +22,31 @@ npm run dev Open [localhost:3000](http://localhost:3000) with your browser to see email previews. -Run the following to use the CLI: +### CLI ```sh +npm run build node ./dist/cli/index.js ``` +#### Packaging the CLI + +```sh +npm run build +npm version --no-git-tag-version 0.0.0-dev +npm pack --pack-destination . +``` + +A `watonomous-watcloud-emails-0.0.0-dev.tgz` file will be created in the current directory. +Use it as follows: + +```sh +npx watonomous-watcloud-emails-0.0.0-dev.tgz --help +# or +npm install -g watonomous-watcloud-emails-0.0.0-dev.tgz +watcloud-emails --help +``` + ## Releasing Releases are manually created from the [Releases page](https://github.com/WATonomous/watcloud-emails/releases). From bf3cc7d05d2d714ab371dfed81bc6bc7da202087 Mon Sep 17 00:00:00 2001 From: Ben Zhang Date: Tue, 31 Dec 2024 06:15:38 +0000 Subject: [PATCH 4/4] Support this for generate-bulk as well --- cli/index.ts | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/cli/index.ts b/cli/index.ts index d9dcfa4..947c0ac 100644 --- a/cli/index.ts +++ b/cli/index.ts @@ -34,9 +34,7 @@ program if (options.data) { if (options.data === '-') { // Read from stdin - const dataraw = fs.readFileSync(0, 'utf-8'); - console.log("dataraw", dataraw); - data = JSON.parse(dataraw); + data = JSON.parse(fs.readFileSync(0, 'utf-8')); } else { data = JSON.parse(options.data); } @@ -64,7 +62,12 @@ program .action(async (template_name, options) => { let data = []; if (options.data) { - data = JSON.parse(options.data); + if (options.data === '-') { + // Read from stdin + data = JSON.parse(fs.readFileSync(0, 'utf-8')); + } else { + data = JSON.parse(options.data); + } } const template = await getTemplate(template_name, data);