escape surrounding quotes for platforms input

Signed-off-by: CrazyMax <crazy-max@users.noreply.github.com>
This commit is contained in:
CrazyMax 2022-10-18 11:06:34 +02:00
parent 693fdd6ca6
commit 1fb9cbdb32
No known key found for this signature in database
GPG Key ID: 3248E46B6BB8C7F7
4 changed files with 20 additions and 5 deletions

@ -124,6 +124,21 @@ describe('getCreateArgs', () => {
'--buildkitd-flags', '--allow-insecure-entitlement security.insecure --allow-insecure-entitlement network.host'
]
],
[
6,
new Map<string, string>([
['install', 'false'],
['use', 'false'],
['platforms', 'linux/amd64\n"linux/arm64,linux/arm/v7"'],
]),
[
'create',
'--name', 'builder-9b1deb4d-3b7d-4bad-9bdd-2b0d7b3dcb6d',
'--driver', 'docker-container',
'--buildkitd-flags', '--allow-insecure-entitlement security.insecure --allow-insecure-entitlement network.host',
'--platform', 'linux/amd64,linux/arm64,linux/arm/v7'
]
],
])(
'[%d] given %p as inputs, returns %p',
async (num: number, inputs: Map<string, string>, expected: Array<string>) => {

2
dist/index.js generated vendored

File diff suppressed because one or more lines are too long

2
dist/index.js.map generated vendored

File diff suppressed because one or more lines are too long

@ -45,7 +45,7 @@ export async function getInputs(): Promise<Inputs> {
driver: core.getInput('driver') || 'docker-container',
driverOpts: await getInputList('driver-opts', true),
buildkitdFlags: core.getInput('buildkitd-flags') || '--allow-insecure-entitlement security.insecure --allow-insecure-entitlement network.host',
platforms: await getInputList('platforms'),
platforms: await getInputList('platforms', false, true),
install: core.getBooleanInput('install'),
use: core.getBooleanInput('use'),
endpoint: core.getInput('endpoint'),
@ -118,7 +118,7 @@ export async function getInspectArgs(inputs: Inputs, buildxVersion: string): Pro
return args;
}
export async function getInputList(name: string, ignoreComma?: boolean): Promise<string[]> {
export async function getInputList(name: string, ignoreComma?: boolean, escapeQuotes?: boolean): Promise<string[]> {
const res: Array<string> = [];
const items = core.getInput(name);
@ -132,7 +132,7 @@ export async function getInputList(name: string, ignoreComma?: boolean): Promise
comment: '#',
relaxColumnCount: true,
skipEmptyLines: true,
quote: false
quote: escapeQuotes ? `"` : false
});
for (const record of records as Array<string[]>) {