@art-work/cli 0.1.2 → 0.1.3

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.
Files changed (31) hide show
  1. package/dist/cjs/commands/checkouts/runCheckoutsRun.d.ts +1 -1
  2. package/dist/cjs/commands/checkouts/runCheckoutsRun.d.ts.map +1 -1
  3. package/dist/cjs/index.js +9 -8
  4. package/dist/cjs/index.js.map +2 -2
  5. package/dist/cjs/private/commands/checkouts/doCheckoutRun.d.ts +1 -1
  6. package/dist/cjs/private/commands/checkouts/doCheckoutRun.d.ts.map +1 -1
  7. package/dist/cjs/private/exec/runCommandInDirectory.d.ts +1 -1
  8. package/dist/cjs/private/exec/runCommandInDirectory.d.ts.map +1 -1
  9. package/dist/commands/checkouts/runCheckoutsRun.d.ts +1 -1
  10. package/dist/commands/checkouts/runCheckoutsRun.d.ts.map +1 -1
  11. package/dist/esm/commands/checkouts/runCheckoutRun.test.mjs +6 -17
  12. package/dist/esm/commands/checkouts/runCheckoutRun.test.mjs.map +2 -2
  13. package/dist/esm/commands/checkouts/runCheckoutsRun.d.ts +1 -1
  14. package/dist/esm/commands/checkouts/runCheckoutsRun.d.ts.map +1 -1
  15. package/dist/esm/commands/checkouts/runCheckoutsRun.mjs +1 -1
  16. package/dist/esm/commands/checkouts/runCheckoutsRun.mjs.map +2 -2
  17. package/dist/esm/index.mjs +1 -1
  18. package/dist/esm/index.mjs.map +2 -2
  19. package/dist/esm/private/commands/checkouts/doCheckoutRun.d.ts +1 -1
  20. package/dist/esm/private/commands/checkouts/doCheckoutRun.d.ts.map +1 -1
  21. package/dist/esm/private/commands/checkouts/doCheckoutRun.mjs +6 -4
  22. package/dist/esm/private/commands/checkouts/doCheckoutRun.mjs.map +2 -2
  23. package/dist/esm/private/exec/runCommandInDirectory.d.ts +1 -1
  24. package/dist/esm/private/exec/runCommandInDirectory.d.ts.map +1 -1
  25. package/dist/esm/private/exec/runCommandInDirectory.mjs +1 -2
  26. package/dist/esm/private/exec/runCommandInDirectory.mjs.map +2 -2
  27. package/dist/private/commands/checkouts/doCheckoutRun.d.ts +1 -1
  28. package/dist/private/commands/checkouts/doCheckoutRun.d.ts.map +1 -1
  29. package/dist/private/exec/runCommandInDirectory.d.ts +1 -1
  30. package/dist/private/exec/runCommandInDirectory.d.ts.map +1 -1
  31. package/package.json +1 -1
@@ -1,6 +1,6 @@
1
1
  import type { WorkspaceContext } from '../../private/context/createWorkspaceContext';
2
2
  export declare function runCheckoutsRun(ctx: WorkspaceContext, options: {
3
- command: string[];
3
+ command: string;
4
4
  checkouts?: string[];
5
5
  all?: boolean;
6
6
  }): Promise<void>;
@@ -1 +1 @@
1
- {"version":3,"file":"runCheckoutsRun.d.ts","sourceRoot":"","sources":["../../../../src/commands/checkouts/runCheckoutsRun.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,8CAA8C,CAAC;AASrF,wBAAsB,eAAe,CACpC,GAAG,EAAE,gBAAgB,EACrB,OAAO,EAAE;IAAE,OAAO,EAAE,MAAM,EAAE,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IAAC,GAAG,CAAC,EAAE,OAAO,CAAA;CAAE,GACjE,OAAO,CAAC,IAAI,CAAC,CA2Bf"}
1
+ {"version":3,"file":"runCheckoutsRun.d.ts","sourceRoot":"","sources":["../../../../src/commands/checkouts/runCheckoutsRun.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,8CAA8C,CAAC;AASrF,wBAAsB,eAAe,CACpC,GAAG,EAAE,gBAAgB,EACrB,OAAO,EAAE;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IAAC,GAAG,CAAC,EAAE,OAAO,CAAA;CAAE,GAC/D,OAAO,CAAC,IAAI,CAAC,CA2Bf"}
@@ -13,7 +13,6 @@ async function runCheckoutsRun(ctx, options) {
13
13
  const records = await loadCheckoutRecords(ctx, repos);
14
14
  hydrateStoreFromRecords(ctx.config, ctx.store, records);
15
15
  ctx.log.log(createGenericOperation("command", ["checkouts", "run", options.command]));
16
- await scanAllCheckoutsStates(ctx);
17
16
  if (!options.all && (!options.checkouts || options.checkouts.length === 0)) {
18
17
  console.error("No checkouts matched.");
19
18
  console.error(
@@ -21,6 +20,7 @@ async function runCheckoutsRun(ctx, options) {
21
20
  );
22
21
  return;
23
22
  }
23
+ await scanAllCheckoutsStates(ctx);
24
24
  const checkouts = options.all ? ctx.store.getAllCheckouts() : ctx.store.getCheckoutsByPattern(options.checkouts ?? []);
25
25
  await runWithConcurrency(checkouts, 4, async (checkout) => {
26
26
  await doCheckoutRun(ctx, checkout, options.command);
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../src/commands/checkouts/runCheckoutsRun.ts"],
4
- "sourcesContent": ["import { runWithConcurrency } from '../../private/async/runWithConcurrency';\nimport { doCheckoutRun } from '../../private/commands/checkouts/doCheckoutRun';\nimport type { WorkspaceContext } from '../../private/context/createWorkspaceContext';\nimport { createGenericOperation } from '../../private/operations/createGenericOperation';\nimport { presentCheckoutReport } from '../../private/present/presentCheckoutReport';\nimport { presentOperationsReport } from '../../private/present/presentOperationsReport';\nimport { loadCheckoutRecords } from '../../private/resources/checkout/loadCheckoutRecords';\nimport { loadRepositoryRecords } from '../../private/resources/repository/loadRepositoryRecords';\nimport { hydrateStoreFromRecords } from '../../private/store/hydrateStoreFromRecords';\nimport { scanAllCheckoutsStates } from '../../private/store/scanAllCheckoutsStates';\n\nexport async function runCheckoutsRun(\n\tctx: WorkspaceContext,\n\toptions: { command: string[]; checkouts?: string[]; all?: boolean },\n): Promise<void> {\n\tconst repos = await loadRepositoryRecords(ctx);\n\tconst records = await loadCheckoutRecords(ctx, repos);\n\thydrateStoreFromRecords(ctx.config, ctx.store, records);\n\n\tctx.log.log(createGenericOperation('command', ['checkouts', 'run', options.command]));\n\n\tawait scanAllCheckoutsStates(ctx);\n\n\tif (!options.all && (!options.checkouts || options.checkouts.length === 0)) {\n\t\tconsole.error('No checkouts matched.');\n\t\tconsole.error(\n\t\t\t`Usage: Use \\`art-workspace checkouts run [options] -c <pattern>\\` or \\`art-workspace checkouts run [options] --all\\` if you want to run the command in all checkouts.`,\n\t\t);\n\t\treturn;\n\t}\n\n\tconst checkouts = options.all\n\t\t? ctx.store.getAllCheckouts()\n\t\t: ctx.store.getCheckoutsByPattern(options.checkouts ?? []);\n\n\tawait runWithConcurrency(checkouts, 4, async checkout => {\n\t\tawait doCheckoutRun(ctx, checkout, options.command);\n\t});\n\n\tpresentCheckoutReport(ctx.config, checkouts);\n\tpresentOperationsReport(ctx.log);\n}\n"],
5
- "mappings": ";AAAA,SAAS,0BAA0B;AACnC,SAAS,qBAAqB;AAE9B,SAAS,8BAA8B;AACvC,SAAS,6BAA6B;AACtC,SAAS,+BAA+B;AACxC,SAAS,2BAA2B;AACpC,SAAS,6BAA6B;AACtC,SAAS,+BAA+B;AACxC,SAAS,8BAA8B;AAEvC,eAAsB,gBACrB,KACA,SACgB;AAChB,QAAM,QAAQ,MAAM,sBAAsB,GAAG;AAC7C,QAAM,UAAU,MAAM,oBAAoB,KAAK,KAAK;AACpD,0BAAwB,IAAI,QAAQ,IAAI,OAAO,OAAO;AAEtD,MAAI,IAAI,IAAI,uBAAuB,WAAW,CAAC,aAAa,OAAO,QAAQ,OAAO,CAAC,CAAC;AAEpF,QAAM,uBAAuB,GAAG;AAEhC,MAAI,CAAC,QAAQ,QAAQ,CAAC,QAAQ,aAAa,QAAQ,UAAU,WAAW,IAAI;AAC3E,YAAQ,MAAM,uBAAuB;AACrC,YAAQ;AAAA,MACP;AAAA,IACD;AACA;AAAA,EACD;AAEA,QAAM,YAAY,QAAQ,MACvB,IAAI,MAAM,gBAAgB,IAC1B,IAAI,MAAM,sBAAsB,QAAQ,aAAa,CAAC,CAAC;AAE1D,QAAM,mBAAmB,WAAW,GAAG,OAAM,aAAY;AACxD,UAAM,cAAc,KAAK,UAAU,QAAQ,OAAO;AAAA,EACnD,CAAC;AAED,wBAAsB,IAAI,QAAQ,SAAS;AAC3C,0BAAwB,IAAI,GAAG;AAChC;",
4
+ "sourcesContent": ["import { runWithConcurrency } from '../../private/async/runWithConcurrency';\nimport { doCheckoutRun } from '../../private/commands/checkouts/doCheckoutRun';\nimport type { WorkspaceContext } from '../../private/context/createWorkspaceContext';\nimport { createGenericOperation } from '../../private/operations/createGenericOperation';\nimport { presentCheckoutReport } from '../../private/present/presentCheckoutReport';\nimport { presentOperationsReport } from '../../private/present/presentOperationsReport';\nimport { loadCheckoutRecords } from '../../private/resources/checkout/loadCheckoutRecords';\nimport { loadRepositoryRecords } from '../../private/resources/repository/loadRepositoryRecords';\nimport { hydrateStoreFromRecords } from '../../private/store/hydrateStoreFromRecords';\nimport { scanAllCheckoutsStates } from '../../private/store/scanAllCheckoutsStates';\n\nexport async function runCheckoutsRun(\n\tctx: WorkspaceContext,\n\toptions: { command: string; checkouts?: string[]; all?: boolean },\n): Promise<void> {\n\tconst repos = await loadRepositoryRecords(ctx);\n\tconst records = await loadCheckoutRecords(ctx, repos);\n\thydrateStoreFromRecords(ctx.config, ctx.store, records);\n\n\tctx.log.log(createGenericOperation('command', ['checkouts', 'run', options.command]));\n\n\tif (!options.all && (!options.checkouts || options.checkouts.length === 0)) {\n\t\tconsole.error('No checkouts matched.');\n\t\tconsole.error(\n\t\t\t`Usage: Use \\`art-workspace checkouts run [options] -c <pattern>\\` or \\`art-workspace checkouts run [options] --all\\` if you want to run the command in all checkouts.`,\n\t\t);\n\t\treturn;\n\t}\n\n\tawait scanAllCheckoutsStates(ctx);\n\n\tconst checkouts = options.all\n\t\t? ctx.store.getAllCheckouts()\n\t\t: ctx.store.getCheckoutsByPattern(options.checkouts ?? []);\n\n\tawait runWithConcurrency(checkouts, 4, async checkout => {\n\t\tawait doCheckoutRun(ctx, checkout, options.command);\n\t});\n\n\tpresentCheckoutReport(ctx.config, checkouts);\n\tpresentOperationsReport(ctx.log);\n}\n"],
5
+ "mappings": ";AAAA,SAAS,0BAA0B;AACnC,SAAS,qBAAqB;AAE9B,SAAS,8BAA8B;AACvC,SAAS,6BAA6B;AACtC,SAAS,+BAA+B;AACxC,SAAS,2BAA2B;AACpC,SAAS,6BAA6B;AACtC,SAAS,+BAA+B;AACxC,SAAS,8BAA8B;AAEvC,eAAsB,gBACrB,KACA,SACgB;AAChB,QAAM,QAAQ,MAAM,sBAAsB,GAAG;AAC7C,QAAM,UAAU,MAAM,oBAAoB,KAAK,KAAK;AACpD,0BAAwB,IAAI,QAAQ,IAAI,OAAO,OAAO;AAEtD,MAAI,IAAI,IAAI,uBAAuB,WAAW,CAAC,aAAa,OAAO,QAAQ,OAAO,CAAC,CAAC;AAEpF,MAAI,CAAC,QAAQ,QAAQ,CAAC,QAAQ,aAAa,QAAQ,UAAU,WAAW,IAAI;AAC3E,YAAQ,MAAM,uBAAuB;AACrC,YAAQ;AAAA,MACP;AAAA,IACD;AACA;AAAA,EACD;AAEA,QAAM,uBAAuB,GAAG;AAEhC,QAAM,YAAY,QAAQ,MACvB,IAAI,MAAM,gBAAgB,IAC1B,IAAI,MAAM,sBAAsB,QAAQ,aAAa,CAAC,CAAC;AAE1D,QAAM,mBAAmB,WAAW,GAAG,OAAM,aAAY;AACxD,UAAM,cAAc,KAAK,UAAU,QAAQ,OAAO;AAAA,EACnD,CAAC;AAED,wBAAsB,IAAI,QAAQ,SAAS;AAC3C,0BAAwB,IAAI,GAAG;AAChC;",
6
6
  "names": []
7
7
  }
@@ -95,7 +95,7 @@ program.command("sync").description("Pull and push clean checkouts").option(
95
95
  const ctx = createWorkspaceContext(config, store, log);
96
96
  await runSync(ctx, { checkouts: options.checkouts, all: options.all });
97
97
  });
98
- program.command("checkouts").description("Checkout operations").command("run").description("Run a command in selected checkouts").argument("<command...>", "command to run").option(
98
+ program.command("checkouts").description("Checkout operations").command("run").description("Run a command in selected checkouts").argument("<command>", "command to run").option(
99
99
  "-c, --checkouts <PATTERN...>",
100
100
  'One or more. Matches checkout name and location. Wildcard asterisk * supported. Example: -c "* @ refactor" "lib-*"'
101
101
  ).option("-A, --all", "Apply to all checkouts").action(async (command, options) => {
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/index.ts"],
4
- "sourcesContent": ["#!/usr/bin/env node\n\nimport { Command } from 'commander';\n\nimport { runBranch } from './commands/branch/runBranch';\nimport { runCheckoutsRun } from './commands/checkouts/runCheckoutsRun';\nimport { runClone } from './commands/clone/runClone';\nimport { runLink } from './commands/link/runLink';\nimport { runPublish } from './commands/publish/runPublish';\nimport { runPull } from './commands/pull/runPull';\nimport { runPush } from './commands/push/runPush';\nimport { runRepo } from './commands/repo/runRepo';\nimport { runSanity } from './commands/sanity/runSanity';\nimport { runSync } from './commands/sync/runSync';\nimport { runUnlink } from './commands/unlink/runUnlink';\nimport { loadWorkspaceConfig } from './config/loadWorkspaceConfig';\nimport { createWorkspaceContext } from './private/context/createWorkspaceContext';\nimport { createOperationsLog } from './private/log/createOperationsLog';\nimport { createGenericOperation } from './private/operations/createGenericOperation';\nimport type { Operation } from './private/operations/types';\nimport { makeOperationLogLine } from './private/present/makeOperationLogLine';\nimport { createCheckoutStore } from './private/store/createCheckoutStore';\n\nexport { defineConfig, loadWorkspaceConfig } from './config';\nexport type { WorkspaceConfig } from './config';\n\nconst program = new Command();\n\nconst logger = (op: Operation) => {\n\tconsole.info(makeOperationLogLine(op, { standalone: true }).join(' | '));\n};\n\nprogram.name('art-workspace').description('Workspace orchestration CLI').version('0.0.18');\n\nprogram\n\t.command('sanity')\n\t.description('Check git status across all repos')\n\t.option('-a, --auto', 'push clean unpushed repos')\n\t.option('-r, --refetch', 'fetch ahead/behind data from remote')\n\t.action(async (options: { auto?: boolean; refetch?: boolean }) => {\n\t\tconst root = process.cwd();\n\t\tlogger(createGenericOperation('boot'));\n\t\tconst config = await loadWorkspaceConfig(root);\n\t\tconst store = createCheckoutStore();\n\t\tconst log = createOperationsLog(logger);\n\t\tconst ctx = createWorkspaceContext(config, store, log);\n\n\t\tconst auto = options.auto ?? false;\n\t\tconst refetch = options.refetch ?? false;\n\t\tawait runSanity(ctx, { auto, refetch });\n\t});\n\nprogram\n\t.command('clone')\n\t.description('Clone repos from manifest')\n\t.option('-a, --all', 'clone all repos')\n\t.argument('[name]', 'repo name to clone')\n\t.argument('[target]', 'target location (relative to checkouts path)')\n\t.action(\n\t\tasync (\n\t\t\trepoName: string | undefined,\n\t\t\tcheckoutInput: string | undefined,\n\t\t\toptions: { all?: boolean },\n\t\t) => {\n\t\t\tconst root = process.cwd();\n\t\t\tlogger(createGenericOperation('boot'));\n\t\t\tconst config = await loadWorkspaceConfig(root);\n\t\t\tconst store = createCheckoutStore();\n\t\t\tconst log = createOperationsLog(logger);\n\t\t\tconst ctx = createWorkspaceContext(config, store, log);\n\n\t\t\tawait runClone(ctx, { all: options.all, repoName, checkoutInput });\n\t\t},\n\t);\n\nprogram\n\t.command('branch')\n\t.description('Branch across checkouts')\n\t.argument('<branch>', 'branch name to create or switch to')\n\t.option(\n\t\t'-c, --checkouts <PATTERN...>',\n\t\t'One or more. Matches checkout name and location. Wildcard asterisk * supported. Example: -c \"* @ refactor\" \"lib-*\"',\n\t)\n\t.option('-A, --all', 'Apply to all checkouts')\n\t.action(async (branch: string, options: { checkouts?: string[]; all?: boolean }) => {\n\t\tconst root = process.cwd();\n\t\tlogger(createGenericOperation('boot'));\n\t\tconst config = await loadWorkspaceConfig(root);\n\t\tconst store = createCheckoutStore();\n\t\tconst log = createOperationsLog(logger);\n\t\tconst ctx = createWorkspaceContext(config, store, log);\n\n\t\tawait runBranch(ctx, { branch, checkouts: options.checkouts, all: options.all });\n\t});\n\nprogram\n\t.command('pull')\n\t.description('Pull clean checkouts that are behind')\n\t.option(\n\t\t'-c, --checkouts <PATTERN...>',\n\t\t'One or more. Matches checkout name and location. Wildcard asterisk * supported. Example: -c \"* @ refactor\" \"lib-*\"',\n\t)\n\t.option('-A, --all', 'Apply to all checkouts')\n\t.action(async (options: { checkouts?: string[]; all?: boolean }) => {\n\t\tconst root = process.cwd();\n\t\tlogger(createGenericOperation('boot'));\n\t\tconst config = await loadWorkspaceConfig(root);\n\t\tconst store = createCheckoutStore();\n\t\tconst log = createOperationsLog(logger);\n\t\tconst ctx = createWorkspaceContext(config, store, log);\n\n\t\tawait runPull(ctx, { checkouts: options.checkouts, all: options.all });\n\t});\n\nprogram\n\t.command('push')\n\t.description('Push clean checkouts that are ahead')\n\t.option(\n\t\t'-c, --checkouts <PATTERN...>',\n\t\t'One or more. Matches checkout name and location. Wildcard asterisk * supported. Example: -c \"* @ refactor\" \"lib-*\"',\n\t)\n\t.option('-A, --all', 'Apply to all checkouts')\n\t.action(async (options: { checkouts?: string[]; all?: boolean }) => {\n\t\tconst root = process.cwd();\n\t\tlogger(createGenericOperation('boot'));\n\t\tconst config = await loadWorkspaceConfig(root);\n\t\tconst store = createCheckoutStore();\n\t\tconst log = createOperationsLog(logger);\n\t\tconst ctx = createWorkspaceContext(config, store, log);\n\n\t\tawait runPush(ctx, { checkouts: options.checkouts, all: options.all });\n\t});\n\nprogram\n\t.command('sync')\n\t.description('Pull and push clean checkouts')\n\t.option(\n\t\t'-c, --checkouts <PATTERN...>',\n\t\t'One or more. Matches checkout name and location. Wildcard asterisk * supported. Example: -c \"* @ refactor\" \"lib-*\"',\n\t)\n\t.option('-A, --all', 'Apply to all checkouts')\n\t.action(async (options: { checkouts?: string[]; all?: boolean }) => {\n\t\tconst root = process.cwd();\n\t\tlogger(createGenericOperation('boot'));\n\t\tconst config = await loadWorkspaceConfig(root);\n\t\tconst store = createCheckoutStore();\n\t\tconst log = createOperationsLog(logger);\n\t\tconst ctx = createWorkspaceContext(config, store, log);\n\n\t\tawait runSync(ctx, { checkouts: options.checkouts, all: options.all });\n\t});\n\nprogram\n\t.command('checkouts')\n\t.description('Checkout operations')\n\t.command('run')\n\t.description('Run a command in selected checkouts')\n\t.argument('<command...>', 'command to run')\n\t.option(\n\t\t'-c, --checkouts <PATTERN...>',\n\t\t'One or more. Matches checkout name and location. Wildcard asterisk * supported. Example: -c \"* @ refactor\" \"lib-*\"',\n\t)\n\t.option('-A, --all', 'Apply to all checkouts')\n\t.action(async (command: string[], options: { checkouts?: string[]; all?: boolean }) => {\n\t\tconst root = process.cwd();\n\t\tlogger(createGenericOperation('boot'));\n\t\tconst config = await loadWorkspaceConfig(root);\n\t\tconst store = createCheckoutStore();\n\t\tconst log = createOperationsLog(logger);\n\t\tconst ctx = createWorkspaceContext(config, store, log);\n\n\t\tawait runCheckoutsRun(ctx, { command, checkouts: options.checkouts, all: options.all });\n\t});\n\nprogram\n\t.command('repo')\n\t.description('List checkout resources')\n\t.argument('[checkouts...]', 'checkout locations to list (default: all checkouts)')\n\t.action(async (locations: string[]) => {\n\t\tconst root = process.cwd();\n\t\tlogger(createGenericOperation('boot'));\n\t\tconst config = await loadWorkspaceConfig(root);\n\t\tconst store = createCheckoutStore();\n\t\tconst log = createOperationsLog(logger);\n\t\tconst ctx = createWorkspaceContext(config, store, log);\n\n\t\tawait runRepo(ctx, { locations });\n\t});\n\nprogram\n\t.command('link')\n\t.description('Link packages for local dev')\n\t.action(async () => {\n\t\tconst root = process.cwd();\n\t\tlogger(createGenericOperation('boot'));\n\t\tconst config = await loadWorkspaceConfig(root);\n\t\tconst store = createCheckoutStore();\n\t\tconst log = createOperationsLog(logger);\n\t\tconst ctx = createWorkspaceContext(config, store, log);\n\n\t\tawait runLink(ctx, { root });\n\t});\n\nprogram\n\t.command('unlink')\n\t.description('Unlink packages')\n\t.action(async () => {\n\t\tconst root = process.cwd();\n\t\tlogger(createGenericOperation('boot'));\n\t\tconst config = await loadWorkspaceConfig(root);\n\t\tconst store = createCheckoutStore();\n\t\tconst log = createOperationsLog(logger);\n\t\tconst ctx = createWorkspaceContext(config, store, log);\n\n\t\tawait runUnlink(ctx, { root });\n\t});\n\nprogram\n\t.command('publish')\n\t.description('Publish packages')\n\t.option('-a, --auto', 'auto-publish')\n\t.action(async (options: { auto?: boolean }) => {\n\t\tconst root = process.cwd();\n\t\tlogger(createGenericOperation('boot'));\n\t\tconst config = await loadWorkspaceConfig(root);\n\t\tconst store = createCheckoutStore();\n\t\tconst log = createOperationsLog(logger);\n\t\tconst ctx = createWorkspaceContext(config, store, log);\n\n\t\tawait runPublish(ctx, { root, auto: options.auto });\n\t});\n\nprogram.parse();\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["#!/usr/bin/env node\n\nimport { Command } from 'commander';\n\nimport { runBranch } from './commands/branch/runBranch';\nimport { runCheckoutsRun } from './commands/checkouts/runCheckoutsRun';\nimport { runClone } from './commands/clone/runClone';\nimport { runLink } from './commands/link/runLink';\nimport { runPublish } from './commands/publish/runPublish';\nimport { runPull } from './commands/pull/runPull';\nimport { runPush } from './commands/push/runPush';\nimport { runRepo } from './commands/repo/runRepo';\nimport { runSanity } from './commands/sanity/runSanity';\nimport { runSync } from './commands/sync/runSync';\nimport { runUnlink } from './commands/unlink/runUnlink';\nimport { loadWorkspaceConfig } from './config/loadWorkspaceConfig';\nimport { createWorkspaceContext } from './private/context/createWorkspaceContext';\nimport { createOperationsLog } from './private/log/createOperationsLog';\nimport { createGenericOperation } from './private/operations/createGenericOperation';\nimport type { Operation } from './private/operations/types';\nimport { makeOperationLogLine } from './private/present/makeOperationLogLine';\nimport { createCheckoutStore } from './private/store/createCheckoutStore';\n\nexport { defineConfig, loadWorkspaceConfig } from './config';\nexport type { WorkspaceConfig } from './config';\n\nconst program = new Command();\n\nconst logger = (op: Operation) => {\n\tconsole.info(makeOperationLogLine(op, { standalone: true }).join(' | '));\n};\n\nprogram.name('art-workspace').description('Workspace orchestration CLI').version('0.0.18');\n\nprogram\n\t.command('sanity')\n\t.description('Check git status across all repos')\n\t.option('-a, --auto', 'push clean unpushed repos')\n\t.option('-r, --refetch', 'fetch ahead/behind data from remote')\n\t.action(async (options: { auto?: boolean; refetch?: boolean }) => {\n\t\tconst root = process.cwd();\n\t\tlogger(createGenericOperation('boot'));\n\t\tconst config = await loadWorkspaceConfig(root);\n\t\tconst store = createCheckoutStore();\n\t\tconst log = createOperationsLog(logger);\n\t\tconst ctx = createWorkspaceContext(config, store, log);\n\n\t\tconst auto = options.auto ?? false;\n\t\tconst refetch = options.refetch ?? false;\n\t\tawait runSanity(ctx, { auto, refetch });\n\t});\n\nprogram\n\t.command('clone')\n\t.description('Clone repos from manifest')\n\t.option('-a, --all', 'clone all repos')\n\t.argument('[name]', 'repo name to clone')\n\t.argument('[target]', 'target location (relative to checkouts path)')\n\t.action(\n\t\tasync (\n\t\t\trepoName: string | undefined,\n\t\t\tcheckoutInput: string | undefined,\n\t\t\toptions: { all?: boolean },\n\t\t) => {\n\t\t\tconst root = process.cwd();\n\t\t\tlogger(createGenericOperation('boot'));\n\t\t\tconst config = await loadWorkspaceConfig(root);\n\t\t\tconst store = createCheckoutStore();\n\t\t\tconst log = createOperationsLog(logger);\n\t\t\tconst ctx = createWorkspaceContext(config, store, log);\n\n\t\t\tawait runClone(ctx, { all: options.all, repoName, checkoutInput });\n\t\t},\n\t);\n\nprogram\n\t.command('branch')\n\t.description('Branch across checkouts')\n\t.argument('<branch>', 'branch name to create or switch to')\n\t.option(\n\t\t'-c, --checkouts <PATTERN...>',\n\t\t'One or more. Matches checkout name and location. Wildcard asterisk * supported. Example: -c \"* @ refactor\" \"lib-*\"',\n\t)\n\t.option('-A, --all', 'Apply to all checkouts')\n\t.action(async (branch: string, options: { checkouts?: string[]; all?: boolean }) => {\n\t\tconst root = process.cwd();\n\t\tlogger(createGenericOperation('boot'));\n\t\tconst config = await loadWorkspaceConfig(root);\n\t\tconst store = createCheckoutStore();\n\t\tconst log = createOperationsLog(logger);\n\t\tconst ctx = createWorkspaceContext(config, store, log);\n\n\t\tawait runBranch(ctx, { branch, checkouts: options.checkouts, all: options.all });\n\t});\n\nprogram\n\t.command('pull')\n\t.description('Pull clean checkouts that are behind')\n\t.option(\n\t\t'-c, --checkouts <PATTERN...>',\n\t\t'One or more. Matches checkout name and location. Wildcard asterisk * supported. Example: -c \"* @ refactor\" \"lib-*\"',\n\t)\n\t.option('-A, --all', 'Apply to all checkouts')\n\t.action(async (options: { checkouts?: string[]; all?: boolean }) => {\n\t\tconst root = process.cwd();\n\t\tlogger(createGenericOperation('boot'));\n\t\tconst config = await loadWorkspaceConfig(root);\n\t\tconst store = createCheckoutStore();\n\t\tconst log = createOperationsLog(logger);\n\t\tconst ctx = createWorkspaceContext(config, store, log);\n\n\t\tawait runPull(ctx, { checkouts: options.checkouts, all: options.all });\n\t});\n\nprogram\n\t.command('push')\n\t.description('Push clean checkouts that are ahead')\n\t.option(\n\t\t'-c, --checkouts <PATTERN...>',\n\t\t'One or more. Matches checkout name and location. Wildcard asterisk * supported. Example: -c \"* @ refactor\" \"lib-*\"',\n\t)\n\t.option('-A, --all', 'Apply to all checkouts')\n\t.action(async (options: { checkouts?: string[]; all?: boolean }) => {\n\t\tconst root = process.cwd();\n\t\tlogger(createGenericOperation('boot'));\n\t\tconst config = await loadWorkspaceConfig(root);\n\t\tconst store = createCheckoutStore();\n\t\tconst log = createOperationsLog(logger);\n\t\tconst ctx = createWorkspaceContext(config, store, log);\n\n\t\tawait runPush(ctx, { checkouts: options.checkouts, all: options.all });\n\t});\n\nprogram\n\t.command('sync')\n\t.description('Pull and push clean checkouts')\n\t.option(\n\t\t'-c, --checkouts <PATTERN...>',\n\t\t'One or more. Matches checkout name and location. Wildcard asterisk * supported. Example: -c \"* @ refactor\" \"lib-*\"',\n\t)\n\t.option('-A, --all', 'Apply to all checkouts')\n\t.action(async (options: { checkouts?: string[]; all?: boolean }) => {\n\t\tconst root = process.cwd();\n\t\tlogger(createGenericOperation('boot'));\n\t\tconst config = await loadWorkspaceConfig(root);\n\t\tconst store = createCheckoutStore();\n\t\tconst log = createOperationsLog(logger);\n\t\tconst ctx = createWorkspaceContext(config, store, log);\n\n\t\tawait runSync(ctx, { checkouts: options.checkouts, all: options.all });\n\t});\n\nprogram\n\t.command('checkouts')\n\t.description('Checkout operations')\n\t.command('run')\n\t.description('Run a command in selected checkouts')\n\t.argument('<command>', 'command to run')\n\t.option(\n\t\t'-c, --checkouts <PATTERN...>',\n\t\t'One or more. Matches checkout name and location. Wildcard asterisk * supported. Example: -c \"* @ refactor\" \"lib-*\"',\n\t)\n\t.option('-A, --all', 'Apply to all checkouts')\n\t.action(async (command: string, options: { checkouts?: string[]; all?: boolean }) => {\n\t\tconst root = process.cwd();\n\t\tlogger(createGenericOperation('boot'));\n\t\tconst config = await loadWorkspaceConfig(root);\n\t\tconst store = createCheckoutStore();\n\t\tconst log = createOperationsLog(logger);\n\t\tconst ctx = createWorkspaceContext(config, store, log);\n\n\t\tawait runCheckoutsRun(ctx, { command, checkouts: options.checkouts, all: options.all });\n\t});\n\nprogram\n\t.command('repo')\n\t.description('List checkout resources')\n\t.argument('[checkouts...]', 'checkout locations to list (default: all checkouts)')\n\t.action(async (locations: string[]) => {\n\t\tconst root = process.cwd();\n\t\tlogger(createGenericOperation('boot'));\n\t\tconst config = await loadWorkspaceConfig(root);\n\t\tconst store = createCheckoutStore();\n\t\tconst log = createOperationsLog(logger);\n\t\tconst ctx = createWorkspaceContext(config, store, log);\n\n\t\tawait runRepo(ctx, { locations });\n\t});\n\nprogram\n\t.command('link')\n\t.description('Link packages for local dev')\n\t.action(async () => {\n\t\tconst root = process.cwd();\n\t\tlogger(createGenericOperation('boot'));\n\t\tconst config = await loadWorkspaceConfig(root);\n\t\tconst store = createCheckoutStore();\n\t\tconst log = createOperationsLog(logger);\n\t\tconst ctx = createWorkspaceContext(config, store, log);\n\n\t\tawait runLink(ctx, { root });\n\t});\n\nprogram\n\t.command('unlink')\n\t.description('Unlink packages')\n\t.action(async () => {\n\t\tconst root = process.cwd();\n\t\tlogger(createGenericOperation('boot'));\n\t\tconst config = await loadWorkspaceConfig(root);\n\t\tconst store = createCheckoutStore();\n\t\tconst log = createOperationsLog(logger);\n\t\tconst ctx = createWorkspaceContext(config, store, log);\n\n\t\tawait runUnlink(ctx, { root });\n\t});\n\nprogram\n\t.command('publish')\n\t.description('Publish packages')\n\t.option('-a, --auto', 'auto-publish')\n\t.action(async (options: { auto?: boolean }) => {\n\t\tconst root = process.cwd();\n\t\tlogger(createGenericOperation('boot'));\n\t\tconst config = await loadWorkspaceConfig(root);\n\t\tconst store = createCheckoutStore();\n\t\tconst log = createOperationsLog(logger);\n\t\tconst ctx = createWorkspaceContext(config, store, log);\n\n\t\tawait runPublish(ctx, { root, auto: options.auto });\n\t});\n\nprogram.parse();\n"],
5
+ "mappings": "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",
6
6
  "names": ["loadWorkspaceConfig"]
7
7
  }
@@ -1,4 +1,4 @@
1
1
  import type { WorkspaceContext } from '../../context/createWorkspaceContext';
2
2
  import type { Checkout } from '../../store/createCheckout';
3
- export declare function doCheckoutRun(ctx: WorkspaceContext, checkout: Checkout, command: string[]): Promise<Checkout | null>;
3
+ export declare function doCheckoutRun(ctx: WorkspaceContext, checkout: Checkout, command: string): Promise<Checkout | null>;
4
4
  //# sourceMappingURL=doCheckoutRun.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"doCheckoutRun.d.ts","sourceRoot":"","sources":["../../../../../src/private/commands/checkouts/doCheckoutRun.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,sCAAsC,CAAC;AAI7E,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,4BAA4B,CAAC;AAG3D,wBAAsB,aAAa,CAClC,GAAG,EAAE,gBAAgB,EACrB,QAAQ,EAAE,QAAQ,EAClB,OAAO,EAAE,MAAM,EAAE,GACf,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC,CAwC1B"}
1
+ {"version":3,"file":"doCheckoutRun.d.ts","sourceRoot":"","sources":["../../../../../src/private/commands/checkouts/doCheckoutRun.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,sCAAsC,CAAC;AAI7E,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,4BAA4B,CAAC;AAG3D,wBAAsB,aAAa,CAClC,GAAG,EAAE,gBAAgB,EACrB,QAAQ,EAAE,QAAQ,EAClB,OAAO,EAAE,MAAM,GACb,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC,CAuC1B"}
@@ -4,16 +4,15 @@ import { createOperationFailure } from "../../operations/createOperationFailure.
4
4
  import { createOperationSuccess } from "../../operations/createOperationSuccess.mjs";
5
5
  import { createCheckoutRunOperation } from "../operations/createCheckoutRunOperation.mjs";
6
6
  async function doCheckoutRun(ctx, checkout, command) {
7
- const commandLine = command.join(" ");
8
7
  if (!checkout.scan?.state("exists").exists) {
9
8
  const op = createOperationFailure(
10
- createCheckoutRunOperation(checkout, commandLine),
9
+ createCheckoutRunOperation(checkout, command),
11
10
  new Error("checkout not cloned")
12
11
  );
13
12
  ctx.log.log(op);
14
13
  return null;
15
14
  }
16
- const pending = createCheckoutRunOperation(checkout, commandLine);
15
+ const pending = createCheckoutRunOperation(checkout, command);
17
16
  try {
18
17
  ctx.log.log(pending);
19
18
  const runOutcome = await runCommandInDirectory(checkout.path, command);
@@ -31,7 +30,10 @@ async function doCheckoutRun(ctx, checkout, command) {
31
30
  console.info("");
32
31
  }
33
32
  if (runOutcome.error) {
34
- console.error("\n--- Error:\n");
33
+ const maybeErrorLabel = runOutcome.code === 0 ? "" : " Error:";
34
+ console.error(`
35
+ ---${maybeErrorLabel}
36
+ `);
35
37
  console.error(runOutcome.error);
36
38
  console.error("");
37
39
  }
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../src/private/commands/checkouts/doCheckoutRun.ts"],
4
- "sourcesContent": ["import type { WorkspaceContext } from '../../context/createWorkspaceContext';\nimport { runCommandInDirectory } from '../../exec/runCommandInDirectory';\nimport { createOperationFailure } from '../../operations/createOperationFailure';\nimport { createOperationSuccess } from '../../operations/createOperationSuccess';\nimport type { Checkout } from '../../store/createCheckout';\nimport { createCheckoutRunOperation } from '../operations/createCheckoutRunOperation';\n\nexport async function doCheckoutRun(\n\tctx: WorkspaceContext,\n\tcheckout: Checkout,\n\tcommand: string[],\n): Promise<Checkout | null> {\n\tconst commandLine = command.join(' ');\n\n\tif (!checkout.scan?.state('exists').exists) {\n\t\tconst op = createOperationFailure(\n\t\t\tcreateCheckoutRunOperation(checkout, commandLine),\n\t\t\tnew Error('checkout not cloned'),\n\t\t);\n\t\tctx.log.log(op);\n\t\treturn null;\n\t}\n\n\tconst pending = createCheckoutRunOperation(checkout, commandLine);\n\ttry {\n\t\tctx.log.log(pending);\n\t\tconst runOutcome = await runCommandInDirectory(checkout.path, command);\n\t\tif (runOutcome.code === 0) {\n\t\t\tctx.log.log(createOperationSuccess(pending));\n\t\t} else {\n\t\t\tctx.log.log(createOperationFailure(pending, new Error(`Exit code: ${runOutcome.code}`)));\n\t\t}\n\t\tif (!runOutcome.output.trim() && !runOutcome.error.trim()) {\n\t\t\tconsole.info('\\n--- [No output]\\n');\n\t\t} else {\n\t\t\tif (runOutcome.output) {\n\t\t\t\tconsole.info('\\n--- Output:\\n');\n\t\t\t\tconsole.info(runOutcome.output);\n\t\t\t\tconsole.info('');\n\t\t\t}\n\t\t\tif (runOutcome.error) {\n\t\t\t\tconsole.error('\\n--- Error:\\n');\n\t\t\t\tconsole.error(runOutcome.error);\n\t\t\t\tconsole.error('');\n\t\t\t}\n\t\t}\n\t\treturn checkout;\n\t} catch (error) {\n\t\tctx.log.log(createOperationFailure(pending, error));\n\t\treturn null;\n\t}\n}\n"],
5
- "mappings": ";AACA,SAAS,6BAA6B;AACtC,SAAS,8BAA8B;AACvC,SAAS,8BAA8B;AAEvC,SAAS,kCAAkC;AAE3C,eAAsB,cACrB,KACA,UACA,SAC2B;AAC3B,QAAM,cAAc,QAAQ,KAAK,GAAG;AAEpC,MAAI,CAAC,SAAS,MAAM,MAAM,QAAQ,EAAE,QAAQ;AAC3C,UAAM,KAAK;AAAA,MACV,2BAA2B,UAAU,WAAW;AAAA,MAChD,IAAI,MAAM,qBAAqB;AAAA,IAChC;AACA,QAAI,IAAI,IAAI,EAAE;AACd,WAAO;AAAA,EACR;AAEA,QAAM,UAAU,2BAA2B,UAAU,WAAW;AAChE,MAAI;AACH,QAAI,IAAI,IAAI,OAAO;AACnB,UAAM,aAAa,MAAM,sBAAsB,SAAS,MAAM,OAAO;AACrE,QAAI,WAAW,SAAS,GAAG;AAC1B,UAAI,IAAI,IAAI,uBAAuB,OAAO,CAAC;AAAA,IAC5C,OAAO;AACN,UAAI,IAAI,IAAI,uBAAuB,SAAS,IAAI,MAAM,cAAc,WAAW,IAAI,EAAE,CAAC,CAAC;AAAA,IACxF;AACA,QAAI,CAAC,WAAW,OAAO,KAAK,KAAK,CAAC,WAAW,MAAM,KAAK,GAAG;AAC1D,cAAQ,KAAK,qBAAqB;AAAA,IACnC,OAAO;AACN,UAAI,WAAW,QAAQ;AACtB,gBAAQ,KAAK,iBAAiB;AAC9B,gBAAQ,KAAK,WAAW,MAAM;AAC9B,gBAAQ,KAAK,EAAE;AAAA,MAChB;AACA,UAAI,WAAW,OAAO;AACrB,gBAAQ,MAAM,gBAAgB;AAC9B,gBAAQ,MAAM,WAAW,KAAK;AAC9B,gBAAQ,MAAM,EAAE;AAAA,MACjB;AAAA,IACD;AACA,WAAO;AAAA,EACR,SAAS,OAAO;AACf,QAAI,IAAI,IAAI,uBAAuB,SAAS,KAAK,CAAC;AAClD,WAAO;AAAA,EACR;AACD;",
4
+ "sourcesContent": ["import type { WorkspaceContext } from '../../context/createWorkspaceContext';\nimport { runCommandInDirectory } from '../../exec/runCommandInDirectory';\nimport { createOperationFailure } from '../../operations/createOperationFailure';\nimport { createOperationSuccess } from '../../operations/createOperationSuccess';\nimport type { Checkout } from '../../store/createCheckout';\nimport { createCheckoutRunOperation } from '../operations/createCheckoutRunOperation';\n\nexport async function doCheckoutRun(\n\tctx: WorkspaceContext,\n\tcheckout: Checkout,\n\tcommand: string,\n): Promise<Checkout | null> {\n\tif (!checkout.scan?.state('exists').exists) {\n\t\tconst op = createOperationFailure(\n\t\t\tcreateCheckoutRunOperation(checkout, command),\n\t\t\tnew Error('checkout not cloned'),\n\t\t);\n\t\tctx.log.log(op);\n\t\treturn null;\n\t}\n\n\tconst pending = createCheckoutRunOperation(checkout, command);\n\ttry {\n\t\tctx.log.log(pending);\n\t\tconst runOutcome = await runCommandInDirectory(checkout.path, command);\n\t\tif (runOutcome.code === 0) {\n\t\t\tctx.log.log(createOperationSuccess(pending));\n\t\t} else {\n\t\t\tctx.log.log(createOperationFailure(pending, new Error(`Exit code: ${runOutcome.code}`)));\n\t\t}\n\t\tif (!runOutcome.output.trim() && !runOutcome.error.trim()) {\n\t\t\tconsole.info('\\n--- [No output]\\n');\n\t\t} else {\n\t\t\tif (runOutcome.output) {\n\t\t\t\tconsole.info('\\n--- Output:\\n');\n\t\t\t\tconsole.info(runOutcome.output);\n\t\t\t\tconsole.info('');\n\t\t\t}\n\t\t\tif (runOutcome.error) {\n\t\t\t\tconst maybeErrorLabel = runOutcome.code === 0 ? '' : ' Error:';\n\t\t\t\tconsole.error(`\\n---${maybeErrorLabel}\\n`);\n\t\t\t\tconsole.error(runOutcome.error);\n\t\t\t\tconsole.error('');\n\t\t\t}\n\t\t}\n\t\treturn checkout;\n\t} catch (error) {\n\t\tctx.log.log(createOperationFailure(pending, error));\n\t\treturn null;\n\t}\n}\n"],
5
+ "mappings": ";AACA,SAAS,6BAA6B;AACtC,SAAS,8BAA8B;AACvC,SAAS,8BAA8B;AAEvC,SAAS,kCAAkC;AAE3C,eAAsB,cACrB,KACA,UACA,SAC2B;AAC3B,MAAI,CAAC,SAAS,MAAM,MAAM,QAAQ,EAAE,QAAQ;AAC3C,UAAM,KAAK;AAAA,MACV,2BAA2B,UAAU,OAAO;AAAA,MAC5C,IAAI,MAAM,qBAAqB;AAAA,IAChC;AACA,QAAI,IAAI,IAAI,EAAE;AACd,WAAO;AAAA,EACR;AAEA,QAAM,UAAU,2BAA2B,UAAU,OAAO;AAC5D,MAAI;AACH,QAAI,IAAI,IAAI,OAAO;AACnB,UAAM,aAAa,MAAM,sBAAsB,SAAS,MAAM,OAAO;AACrE,QAAI,WAAW,SAAS,GAAG;AAC1B,UAAI,IAAI,IAAI,uBAAuB,OAAO,CAAC;AAAA,IAC5C,OAAO;AACN,UAAI,IAAI,IAAI,uBAAuB,SAAS,IAAI,MAAM,cAAc,WAAW,IAAI,EAAE,CAAC,CAAC;AAAA,IACxF;AACA,QAAI,CAAC,WAAW,OAAO,KAAK,KAAK,CAAC,WAAW,MAAM,KAAK,GAAG;AAC1D,cAAQ,KAAK,qBAAqB;AAAA,IACnC,OAAO;AACN,UAAI,WAAW,QAAQ;AACtB,gBAAQ,KAAK,iBAAiB;AAC9B,gBAAQ,KAAK,WAAW,MAAM;AAC9B,gBAAQ,KAAK,EAAE;AAAA,MAChB;AACA,UAAI,WAAW,OAAO;AACrB,cAAM,kBAAkB,WAAW,SAAS,IAAI,KAAK;AACrD,gBAAQ,MAAM;AAAA,KAAQ,eAAe;AAAA,CAAI;AACzC,gBAAQ,MAAM,WAAW,KAAK;AAC9B,gBAAQ,MAAM,EAAE;AAAA,MACjB;AAAA,IACD;AACA,WAAO;AAAA,EACR,SAAS,OAAO;AACf,QAAI,IAAI,IAAI,uBAAuB,SAAS,KAAK,CAAC;AAClD,WAAO;AAAA,EACR;AACD;",
6
6
  "names": []
7
7
  }
@@ -3,5 +3,5 @@ export interface RunCommandOutcome {
3
3
  output: string;
4
4
  error: string;
5
5
  }
6
- export declare function runCommandInDirectory(dir: string, command: string[]): Promise<RunCommandOutcome>;
6
+ export declare function runCommandInDirectory(dir: string, command: string): Promise<RunCommandOutcome>;
7
7
  //# sourceMappingURL=runCommandInDirectory.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"runCommandInDirectory.d.ts","sourceRoot":"","sources":["../../../../src/private/exec/runCommandInDirectory.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,iBAAiB;IACjC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;CACd;AAED,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAWhG"}
1
+ {"version":3,"file":"runCommandInDirectory.d.ts","sourceRoot":"","sources":["../../../../src/private/exec/runCommandInDirectory.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,iBAAiB;IACjC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;CACd;AAED,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAU9F"}
@@ -2,8 +2,7 @@
2
2
  import { spawn } from "node:child_process";
3
3
  function runCommandInDirectory(dir, command) {
4
4
  return new Promise((resolve) => {
5
- const [cmd, ...args] = command.length === 1 ? command[0].split(/\s+/) : command;
6
- const child = spawn(cmd, args, { cwd: dir });
5
+ const child = spawn(command, { cwd: dir, shell: true });
7
6
  let output = "";
8
7
  let error = "";
9
8
  child.stdout?.on("data", (chunk) => output += chunk);
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../src/private/exec/runCommandInDirectory.ts"],
4
- "sourcesContent": ["import { spawn } from 'node:child_process';\n\nexport interface RunCommandOutcome {\n\tcode: number | null;\n\toutput: string;\n\terror: string;\n}\n\nexport function runCommandInDirectory(dir: string, command: string[]): Promise<RunCommandOutcome> {\n\treturn new Promise(resolve => {\n\t\tconst [cmd, ...args] = command.length === 1 ? command[0].split(/\\s+/) : command;\n\t\tconst child = spawn(cmd, args, { cwd: dir });\n\t\tlet output = '';\n\t\tlet error = '';\n\t\tchild.stdout?.on('data', chunk => (output += chunk));\n\t\tchild.stderr?.on('data', chunk => (error += chunk));\n\t\tchild.on('error', err => resolve({ code: null, output, error: err.message }));\n\t\tchild.on('exit', code => resolve({ code, output, error }));\n\t});\n}\n"],
5
- "mappings": ";AAAA,SAAS,aAAa;AAQf,SAAS,sBAAsB,KAAa,SAA+C;AACjG,SAAO,IAAI,QAAQ,aAAW;AAC7B,UAAM,CAAC,KAAK,GAAG,IAAI,IAAI,QAAQ,WAAW,IAAI,QAAQ,CAAC,EAAE,MAAM,KAAK,IAAI;AACxE,UAAM,QAAQ,MAAM,KAAK,MAAM,EAAE,KAAK,IAAI,CAAC;AAC3C,QAAI,SAAS;AACb,QAAI,QAAQ;AACZ,UAAM,QAAQ,GAAG,QAAQ,WAAU,UAAU,KAAM;AACnD,UAAM,QAAQ,GAAG,QAAQ,WAAU,SAAS,KAAM;AAClD,UAAM,GAAG,SAAS,SAAO,QAAQ,EAAE,MAAM,MAAM,QAAQ,OAAO,IAAI,QAAQ,CAAC,CAAC;AAC5E,UAAM,GAAG,QAAQ,UAAQ,QAAQ,EAAE,MAAM,QAAQ,MAAM,CAAC,CAAC;AAAA,EAC1D,CAAC;AACF;",
4
+ "sourcesContent": ["import { spawn } from 'node:child_process';\n\nexport interface RunCommandOutcome {\n\tcode: number | null;\n\toutput: string;\n\terror: string;\n}\n\nexport function runCommandInDirectory(dir: string, command: string): Promise<RunCommandOutcome> {\n\treturn new Promise(resolve => {\n\t\tconst child = spawn(command, { cwd: dir, shell: true });\n\t\tlet output = '';\n\t\tlet error = '';\n\t\tchild.stdout?.on('data', chunk => (output += chunk));\n\t\tchild.stderr?.on('data', chunk => (error += chunk));\n\t\tchild.on('error', err => resolve({ code: null, output, error: err.message }));\n\t\tchild.on('exit', code => resolve({ code, output, error }));\n\t});\n}\n"],
5
+ "mappings": ";AAAA,SAAS,aAAa;AAQf,SAAS,sBAAsB,KAAa,SAA6C;AAC/F,SAAO,IAAI,QAAQ,aAAW;AAC7B,UAAM,QAAQ,MAAM,SAAS,EAAE,KAAK,KAAK,OAAO,KAAK,CAAC;AACtD,QAAI,SAAS;AACb,QAAI,QAAQ;AACZ,UAAM,QAAQ,GAAG,QAAQ,WAAU,UAAU,KAAM;AACnD,UAAM,QAAQ,GAAG,QAAQ,WAAU,SAAS,KAAM;AAClD,UAAM,GAAG,SAAS,SAAO,QAAQ,EAAE,MAAM,MAAM,QAAQ,OAAO,IAAI,QAAQ,CAAC,CAAC;AAC5E,UAAM,GAAG,QAAQ,UAAQ,QAAQ,EAAE,MAAM,QAAQ,MAAM,CAAC,CAAC;AAAA,EAC1D,CAAC;AACF;",
6
6
  "names": []
7
7
  }
@@ -1,4 +1,4 @@
1
1
  import type { WorkspaceContext } from '../../context/createWorkspaceContext';
2
2
  import type { Checkout } from '../../store/createCheckout';
3
- export declare function doCheckoutRun(ctx: WorkspaceContext, checkout: Checkout, command: string[]): Promise<Checkout | null>;
3
+ export declare function doCheckoutRun(ctx: WorkspaceContext, checkout: Checkout, command: string): Promise<Checkout | null>;
4
4
  //# sourceMappingURL=doCheckoutRun.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"doCheckoutRun.d.ts","sourceRoot":"","sources":["../../../../src/private/commands/checkouts/doCheckoutRun.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,sCAAsC,CAAC;AAI7E,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,4BAA4B,CAAC;AAG3D,wBAAsB,aAAa,CAClC,GAAG,EAAE,gBAAgB,EACrB,QAAQ,EAAE,QAAQ,EAClB,OAAO,EAAE,MAAM,EAAE,GACf,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC,CAwC1B"}
1
+ {"version":3,"file":"doCheckoutRun.d.ts","sourceRoot":"","sources":["../../../../src/private/commands/checkouts/doCheckoutRun.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,sCAAsC,CAAC;AAI7E,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,4BAA4B,CAAC;AAG3D,wBAAsB,aAAa,CAClC,GAAG,EAAE,gBAAgB,EACrB,QAAQ,EAAE,QAAQ,EAClB,OAAO,EAAE,MAAM,GACb,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC,CAuC1B"}
@@ -3,5 +3,5 @@ export interface RunCommandOutcome {
3
3
  output: string;
4
4
  error: string;
5
5
  }
6
- export declare function runCommandInDirectory(dir: string, command: string[]): Promise<RunCommandOutcome>;
6
+ export declare function runCommandInDirectory(dir: string, command: string): Promise<RunCommandOutcome>;
7
7
  //# sourceMappingURL=runCommandInDirectory.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"runCommandInDirectory.d.ts","sourceRoot":"","sources":["../../../src/private/exec/runCommandInDirectory.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,iBAAiB;IACjC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;CACd;AAED,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAWhG"}
1
+ {"version":3,"file":"runCommandInDirectory.d.ts","sourceRoot":"","sources":["../../../src/private/exec/runCommandInDirectory.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,iBAAiB;IACjC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;CACd;AAED,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAU9F"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@art-work/cli",
3
- "version": "0.1.2",
3
+ "version": "0.1.3",
4
4
  "description": "CLI for discovering projects, inspecting and synchronizing checkouts, linking resources, and executing commands across them.",
5
5
  "author": "Noodlestan Collective",
6
6
  "license": "MIT",