Skip to content

Commit 24a5993

Browse files
committed
fix: handle edge-cases for default versions
1 parent 18a5143 commit 24a5993

File tree

6 files changed

+23
-23
lines changed

6 files changed

+23
-23
lines changed

dist/node12/setup-cpp.js

Lines changed: 2 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

dist/node12/setup-cpp.js.map

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

dist/node16/setup-cpp.js

Lines changed: 2 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

dist/node16/setup-cpp.js.map

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/versions/default_versions.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ export const DefaultVersions: Record<string, string | undefined> = {
3333
/// If an ubuntu versions is not in this map:
3434
// - the newer ubuntu versions use the first entry (e.g. v20),
3535
// - the older ones use ""
36-
export const DefaultLinuxVersion: Record<string, Record<number, string>> = {
36+
export const DefaultLinuxVersion: Record<string, Record<number, string> | undefined> = {
3737
gcc: {
3838
22: "13",
3939
20: "11",

src/versions/versions.ts

Lines changed: 16 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -4,32 +4,32 @@ import { DefaultLinuxVersion, DefaultVersions } from "./default_versions"
44

55
/** Get the default version if passed true or undefined, otherwise return the version itself */
66
export function getVersion(name: string, version: string | undefined, osVersion: number[] | null = null) {
7-
if (isDefault(version, name)) {
8-
if (process.platform === "linux" && osVersion !== null) {
9-
return getDefaultLinuxVersion(name, osVersion)
10-
}
11-
// anything else
12-
return DefaultVersions[name]! // checked by isDefault
13-
} else {
14-
return version ?? ""
7+
console.log("isDefault", version, name, isVersionDefault(version))
8+
if (isVersionDefault(version) && process.platform === "linux" && osVersion !== null && name in DefaultLinuxVersion) {
9+
return getDefaultLinuxVersion(osVersion, DefaultLinuxVersion[name]!)
10+
} else if (isVersionDefault(version) && name in DefaultVersions) {
11+
return DefaultVersions[name]!
12+
} else if (version === "true") {
13+
return ""
1514
}
15+
return version ?? ""
16+
}
17+
18+
function isVersionDefault(version: string | undefined) {
19+
return version === "true" || version === undefined
1620
}
1721

1822
/// choose the default linux version based on ubuntu version
19-
function getDefaultLinuxVersion(name: string, osVersion: number[]) {
23+
function getDefaultLinuxVersion(osVersion: number[], toolLinuxVersions: Record<number, string>) {
2024
const osVersionMaj = osVersion[0]
2125

2226
// find which version block the os version is in
23-
const satisfyingVersion = Object.keys(DefaultLinuxVersion[name])
27+
const satisfyingVersion = Object.keys(toolLinuxVersions)
2428
.map((v) => parseInt(v, 10))
2529
.sort((a, b) => b - a) // sort in descending order
2630
.find((v) => osVersionMaj >= v)
2731

28-
return satisfyingVersion === undefined ? "" : DefaultLinuxVersion[name][satisfyingVersion]
29-
}
30-
31-
function isDefault(version: string | undefined, name: string) {
32-
return (version === "true" || version === undefined) && name in DefaultLinuxVersion
32+
return satisfyingVersion === undefined ? "" : toolLinuxVersions[satisfyingVersion]
3333
}
3434

3535
/**
@@ -39,7 +39,7 @@ function isDefault(version: string | undefined, name: string) {
3939
*/
4040
export function syncVersions(opts: Opts, tools: Inputs[]): boolean {
4141
const toolsInUse = tools.filter((tool) => opts[tool] !== undefined)
42-
const toolsNonDefaultVersion = toolsInUse.filter((tool) => !isDefault(opts[tool], tool))
42+
const toolsNonDefaultVersion = toolsInUse.filter((tool) => !isVersionDefault(opts[tool]))
4343

4444
const targetVersion = toolsNonDefaultVersion.length >= 1 ? opts[toolsNonDefaultVersion[0]] : "true"
4545

0 commit comments

Comments
 (0)