in eng/tools/lint-diff/src/lint-diff.ts [12:98]
export async function main() {
let validArgs = true;
const config: ParseArgsConfig = {
options: {
before: {
type: "string",
short: "b",
},
after: {
type: "string",
short: "a",
},
"changed-files-path": {
type: "string",
short: "c",
},
"out-file": {
type: "string",
short: "o",
default: "lint-diff.md",
},
// TODO: Consider using git commands to determine this information
"base-branch": {
type: "string",
short: "b",
default: "main",
},
"compare-sha": {
type: "string",
short: "m",
default: "main",
},
},
strict: true,
};
const {
values: {
before: beforeArg,
after: afterArg,
"changed-files-path": changedFilesPath,
"out-file": outFile,
"base-branch": baseBranch,
"compare-sha": compareSha,
},
} = parseArgs(config);
// TODO: Handle trailing slashes properly
if (!beforeArg || !(await pathExists(beforeArg as string))) {
validArgs = false;
console.log(`--before must be a valid path. Value passed: ${beforeArg || "<empty>"}`);
}
// TODO: Handle trailing slashes properly
if (!afterArg || !(await pathExists(afterArg as string))) {
validArgs = false;
console.log(`--after must be a valid path. Value passed: ${afterArg || "<empty>"}`);
}
if (!changedFilesPath || !(await pathExists(changedFilesPath as string))) {
validArgs = false;
console.log("--changed-files-path missing");
}
if (!validArgs) {
usage();
process.exit(1);
}
// const versionResult = await executeCommand("npm exec -- autorest --version");
// if (versionResult.error) {
// console.error("Error running autorest --version", versionResult.error);
// process.exit(1);
// }
// console.log("Autorest version:");
// console.log(versionResult.stdout);
await runLintDiff(
beforeArg as string,
afterArg as string,
changedFilesPath as string,
outFile as string,
baseBranch as string,
compareSha as string,
);
}