feat(validate-cmd-file): corrected validation

This commit is contained in:
Maarten Groeneweg 2024-02-09 16:39:03 +01:00
parent c23b2a4dbd
commit c6f0c06766

View file

@ -101,25 +101,39 @@ class Renovate {
if (/\s/.test(this.input.token.value)) { if (/\s/.test(this.input.token.value)) {
throw new Error('Token MUST NOT contain whitespace'); throw new Error('Token MUST NOT contain whitespace');
} }
this.validateConfigFileArgument();
this.validateDockerCmdFileArgument();
}
private validateConfigFileArgument(): void {
const configurationFile = this.input.configurationFile(); const configurationFile = this.input.configurationFile();
if (configurationFile !== null) { if (
configurationFile !== null &&
(!fs.existsSync(configurationFile.value) ||
!fs.statSync(configurationFile.value).isFile())
) {
throw new Error(
`configuration file '${configurationFile.value}' MUST be an existing file`,
);
}
}
private validateDockerCmdFileArgument(): void {
const dockerCmdFile = this.input.getDockerCmdFile();
if (dockerCmdFile !== null) {
if ( if (
!fs.existsSync(configurationFile.value) || !fs.existsSync(dockerCmdFile) ||
!fs.statSync(configurationFile.value).isFile() !fs.statSync(dockerCmdFile).isFile()
) { ) {
throw new Error( throw new Error(
`configuration file '${configurationFile.value}' MUST be an existing file`, `dockerCmdFile '${dockerCmdFile}' MUST be an existing file`,
); );
} }
try { try {
fs.accessSync( fs.accessSync(dockerCmdFile, fs.constants.R_OK | fs.constants.X_OK);
configurationFile.value,
fs.constants.R_OK | fs.constants.X_OK,
);
} catch { } catch {
throw new Error( throw new Error(
`configuration file '${configurationFile.value}' MUST have read and execute rights`, `dockerCmdFile '${dockerCmdFile}' MUST have read and execute rights`,
); );
} }
} }