@nmakarov/cli-toolkit 0.51.0 → 0.53.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@nmakarov/cli-toolkit",
3
- "version": "0.51.0",
3
+ "version": "0.53.0",
4
4
  "description": "A comprehensive toolkit for building CLI applications",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -22,6 +22,8 @@
22
22
  * --host ssh Host alias → run remotely (omit to run locally)
23
23
  * --appsRoot override the manifest appsRoot (handy for /tmp dry runs)
24
24
  * --dryRun --skipPull --skipTests --skipNginx
25
+ * --stopFirst (deploy: pm2 stop → wait → activate → pm2 start;
26
+ * default is rolling: activate then startOrReload)
25
27
  * --withBootstrap --noDeploy (provision)
26
28
  * --release=<stamp> (rollback to a specific release)
27
29
  * --deployKey=~/.ssh/key (git deploy key, ssh repos)
@@ -49,7 +51,7 @@ const COMMANDS = ["setup", "bootstrap", "init", "provision", "deploy", "rollback
49
51
 
50
52
  function remotePassthrough(flags) {
51
53
  const out = [];
52
- const bools = ["dryRun", "skipPull", "skipTests", "skipNginx", "noDeploy", "withBootstrap"];
54
+ const bools = ["dryRun", "skipPull", "skipTests", "skipNginx", "stopFirst", "noDeploy", "withBootstrap"];
53
55
  for (const k of bools) if (flags[k]) out.push(`--${k}`);
54
56
  if (flags.release) out.push(`--release=${flags.release}`);
55
57
  if (flags.deployKey) out.push(`--deployKey=${flags.deployKey}`);
@@ -78,6 +80,7 @@ const flow = async (context) => {
78
80
  skipPull: "boolean default false",
79
81
  skipTests: "boolean default false",
80
82
  skipNginx: "boolean default false",
83
+ stopFirst: "boolean default false",
81
84
  withBootstrap: "boolean default false",
82
85
  noDeploy: "boolean default false",
83
86
  appsRoot: "string optional",
@@ -159,6 +162,7 @@ const flow = async (context) => {
159
162
  skipPull: flags.skipPull,
160
163
  skipTests: flags.skipTests,
161
164
  skipNginx: flags.skipNginx,
165
+ stopFirst: flags.stopFirst,
162
166
  logger,
163
167
  });
164
168
  break;