From bc6eb9d3725baed6abc762a03d2cd834cfcf202d Mon Sep 17 00:00:00 2001 From: Alfi Maulana Date: Wed, 20 Nov 2024 23:08:30 +0700 Subject: [PATCH] feat: parse quotation in `build-args` input Signed-off-by: Alfi Maulana --- dist/action.mjs | 4 +--- src/context.test.ts | 8 ++++---- src/context.ts | 4 +--- 3 files changed, 6 insertions(+), 10 deletions(-) diff --git a/dist/action.mjs b/dist/action.mjs index 8737a2a..57061eb 100644 --- a/dist/action.mjs +++ b/dist/action.mjs @@ -386,9 +386,7 @@ function getContext() { }, build: { enabled: getInput("run-build") == "true", - args: getInput("build-args") - .split(/\s+/) - .filter((arg) => arg != ""), + args: shellQuoteExports.parse(getInput("build-args")).map((arg) => arg.toString()), }, }; } diff --git a/src/context.test.ts b/src/context.test.ts index 394bd7a..163a8c4 100644 --- a/src/context.test.ts +++ b/src/context.test.ts @@ -132,11 +132,11 @@ describe("get action context", () => { }, { name: "with additional build arguments specified", - inputs: { "build-args": "--target foo\n--parallel 8" }, + inputs: { "build-args": `--target foo\n--parallel 8 --foo "bar baz"` }, expectedContext: { build: { enabled: false, - args: ["--target", "foo", "--parallel", "8"], + args: ["--target", "foo", "--parallel", "8", "--foo", "bar baz"], }, }, }, @@ -153,7 +153,7 @@ describe("get action context", () => { options: `BUILD_TESTING=ON BUILD_EXAMPLES=ON\nBUILD_DOCS=ON FOO="BAR BAZ"`, args: `-Wdev -Wdeprecated\n--fresh --foo "bar baz"`, "run-build": "true", - "build-args": "--target foo\n--parallel 8", + "build-args": `--target foo\n--parallel 8 --foo "bar baz"`, }, expectedContext: { sourceDir: "project", @@ -174,7 +174,7 @@ describe("get action context", () => { }, build: { enabled: true, - args: ["--target", "foo", "--parallel", "8"], + args: ["--target", "foo", "--parallel", "8", "--foo", "bar baz"], }, }, }, diff --git a/src/context.ts b/src/context.ts index 9f4161b..1415418 100644 --- a/src/context.ts +++ b/src/context.ts @@ -53,9 +53,7 @@ export function getContext(): Context { }, build: { enabled: getInput("run-build") == "true", - args: getInput("build-args") - .split(/\s+/) - .filter((arg) => arg != ""), + args: parse(getInput("build-args")).map((arg) => arg.toString()), }, }; }