diff --git a/.changeset/preserve-path-flag-equals.md b/.changeset/preserve-path-flag-equals.md new file mode 100644 index 00000000000..a6c1db165b8 --- /dev/null +++ b/.changeset/preserve-path-flag-equals.md @@ -0,0 +1,5 @@ +--- +'@shopify/cli-kit': patch +--- + +Preserve equals signs in project paths passed with `--path=`. diff --git a/packages/cli-kit/src/public/node/path.test.ts b/packages/cli-kit/src/public/node/path.test.ts index 4972b3ac276..28db50754b4 100644 --- a/packages/cli-kit/src/public/node/path.test.ts +++ b/packages/cli-kit/src/public/node/path.test.ts @@ -92,4 +92,15 @@ describe('sniffForPath', () => { // Then expect(path).toStrictEqual('/path/to/project') }) + + test('returns the entire path if it contains =', () => { + // Given + const argv = ['node', 'script.js', '--path=/path/to/project=name'] + + // When + const path = sniffForPath(argv) + + // Then + expect(path).toStrictEqual('/path/to/project=name') + }) }) diff --git a/packages/cli-kit/src/public/node/path.ts b/packages/cli-kit/src/public/node/path.ts index f3721780110..a142c13fada 100644 --- a/packages/cli-kit/src/public/node/path.ts +++ b/packages/cli-kit/src/public/node/path.ts @@ -188,8 +188,9 @@ export function cwd(): string { export function sniffForPath(argv = process.argv): string | undefined { const pathFlagIndex = argv.indexOf('--path') if (pathFlagIndex === -1) { - const pathArg = argv.find((arg) => arg.startsWith('--path=')) - return pathArg?.split('=')[1] + const pathFlagPrefix = '--path=' + const pathArg = argv.find((arg) => arg.startsWith(pathFlagPrefix)) + return pathArg?.slice(pathFlagPrefix.length) } const pathFlag = argv[pathFlagIndex + 1] if (!pathFlag || pathFlag.startsWith('-')) return