Skip to content
Snippets Groups Projects
Unverified Commit 4537ec1c authored by Joshua Gleitze's avatar Joshua Gleitze Committed by GitHub
Browse files

refactor(gradle-wrapper): Extract Regexes & Named Capturing Gro… (#5742)

parent 8c3b8d21
Branches
Tags 19.38.3
No related merge requests found
...@@ -3,6 +3,7 @@ import { logger } from '../../logger'; ...@@ -3,6 +3,7 @@ import { logger } from '../../logger';
import { PackageFile, PackageDependency } from '../common'; import { PackageFile, PackageDependency } from '../common';
import * as semverVersioning from '../../versioning/semver'; import * as semverVersioning from '../../versioning/semver';
import * as datasourceGradleVersion from '../../datasource/gradle-version'; import * as datasourceGradleVersion from '../../datasource/gradle-version';
import { DISTRIBUTION_CHECKSUM_REGEX, DISTRIBUTION_URL_REGEX } from './search';
export function extractPackageFile(fileContent: string): PackageFile | null { export function extractPackageFile(fileContent: string): PackageFile | null {
logger.debug('gradle-wrapper.extractPackageFile()'); logger.debug('gradle-wrapper.extractPackageFile()');
...@@ -10,24 +11,23 @@ export function extractPackageFile(fileContent: string): PackageFile | null { ...@@ -10,24 +11,23 @@ export function extractPackageFile(fileContent: string): PackageFile | null {
let lineNumber = 0; let lineNumber = 0;
for (const line of lines) { for (const line of lines) {
const match = /^distributionUrl\s*=\s*\S*-((\d|\.)+)-(bin|all)\.zip\s*$/.exec( const distributionUrlMatch = DISTRIBUTION_URL_REGEX.exec(line);
line if (distributionUrlMatch) {
);
if (match) {
const dependency: PackageDependency = { const dependency: PackageDependency = {
datasource: datasourceGradleVersion.id, datasource: datasourceGradleVersion.id,
depType: 'gradle-wrapper', depType: 'gradle-wrapper',
depName: 'gradle', depName: 'gradle',
currentValue: coerce(match[1]).toString(), currentValue: coerce(distributionUrlMatch.groups.version).toString(),
managerData: { lineNumber, gradleWrapperType: match[3] }, managerData: {
lineNumber,
gradleWrapperType: distributionUrlMatch.groups.type,
},
versioning: semverVersioning.id, versioning: semverVersioning.id,
}; };
let shaLineNumber = 0; let shaLineNumber = 0;
for (const shaLine of lines) { for (const shaLine of lines) {
const shaMatch = /^distributionSha256Sum\s*=\s*((\w){64}).*$/.test( const shaMatch = DISTRIBUTION_CHECKSUM_REGEX.test(shaLine);
shaLine
);
if (shaMatch) { if (shaMatch) {
dependency.managerData.checksumLineNumber = shaLineNumber; dependency.managerData.checksumLineNumber = shaLineNumber;
break; break;
......
export const DISTRIBUTION_URL_REGEX = /^(?<assignment>distributionUrl\s*=\s*)\S*-(?<version>(\d|\.)+)-(?<type>bin|all)\.zip\s*$/;
export const DISTRIBUTION_CHECKSUM_REGEX = /^(?<assignment>distributionSha256Sum\s*=\s*)(?<checksum>(\w){64}).*$/;
import got from '../../util/got'; import got from '../../util/got';
import { logger } from '../../logger'; import { logger } from '../../logger';
import { UpdateDependencyConfig } from '../common'; import { UpdateDependencyConfig } from '../common';
import { DISTRIBUTION_CHECKSUM_REGEX, DISTRIBUTION_URL_REGEX } from './search';
function replaceType(url: string): string { function replaceType(url: string): string {
return url.replace('bin', 'all'); return url.replace('bin', 'all');
...@@ -40,12 +41,12 @@ export async function updateDependency({ ...@@ -40,12 +41,12 @@ export async function updateDependency({
lines[upgrade.managerData.lineNumber] = lines[ lines[upgrade.managerData.lineNumber] = lines[
upgrade.managerData.lineNumber upgrade.managerData.lineNumber
].replace(/(distributionUrl\s*=\s*)\S*/, `$1${downloadUrl}`); ].replace(DISTRIBUTION_URL_REGEX, `$<assignment>${downloadUrl}`);
if (upgrade.managerData.checksumLineNumber) { if (upgrade.managerData.checksumLineNumber) {
lines[upgrade.managerData.checksumLineNumber] = lines[ lines[upgrade.managerData.checksumLineNumber] = lines[
upgrade.managerData.checksumLineNumber upgrade.managerData.checksumLineNumber
].replace(/(distributionSha256Sum\s*=\s*)\S*/, `$1${checksum}`); ].replace(DISTRIBUTION_CHECKSUM_REGEX, `$<assignment>${checksum}`);
} }
// TODO: insert if not present // TODO: insert if not present
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment