rs-toolchain/src/args.ts

43 lines
1.3 KiB
TypeScript

import {input} from '@actions-rs/core';
import {info, debug} from "@actions/core";
import {existsSync, readFileSync} from 'fs';
export interface ToolchainOptions {
name: string,
target: string | undefined,
default: boolean,
override: boolean,
profile: string | undefined,
components: string[] | undefined,
}
export function toolchain_args(overrideFile: string): ToolchainOptions {
let components: string[] | undefined = input.getInputList('components');
if (components && components.length === 0) {
components = undefined;
}
return {
name: determineToolchain(overrideFile),
target: input.getInput('target') || undefined,
default: input.getInputBool('default'),
override: input.getInputBool('override'),
profile: input.getInput('profile') || undefined,
components: components,
};
}
function determineToolchain(overrideFile: string): string {
if (existsSync(overrideFile)) {
debug(`using toolchain override from ${overrideFile}`);
const content = readFileSync(overrideFile, {
encoding: "utf-8",
flag: "r"
});
return content.trim();
} else {
debug(`toolchain override file ${overrideFile} does not exist, falling back to input variable`);
return input.getInput('toolchain', {required: true})
}
}