diff --git a/ts/util/os/osMain.ts b/ts/util/os/osMain.ts index fd9e56884..e4c1be65f 100644 --- a/ts/util/os/osMain.ts +++ b/ts/util/os/osMain.ts @@ -2,8 +2,26 @@ // SPDX-License-Identifier: AGPL-3.0-only import os from 'os'; +import { readFileSync } from 'fs-extra'; import { getOSFunctions } from './shared'; -const OS = getOSFunctions(os.release()); +function getLinuxName(): string | undefined { + if (os.platform() !== 'linux') { + return undefined; + } + + const etcOsRelease = readFileSync('/etc/os-release', 'utf-8'); + const match = etcOsRelease.match(/^PRETTY_NAME=(.+?)$/m); + if (!match) { + return undefined; + } + + return match[1]; +} + +const OS = { + ...getOSFunctions(os.release()), + getLinuxName, +}; export default OS; diff --git a/ts/util/os/shared.ts b/ts/util/os/shared.ts index a46120910..01fcd66f8 100644 --- a/ts/util/os/shared.ts +++ b/ts/util/os/shared.ts @@ -2,7 +2,6 @@ // SPDX-License-Identifier: AGPL-3.0-only import semver from 'semver'; -import { readFileSync } from 'fs-extra'; function createIsPlatform( platform: typeof process.platform, @@ -27,7 +26,6 @@ export type OSType = { isLinux: (minVersion?: string) => boolean; isMacOS: (minVersion?: string) => boolean; isWindows: (minVersion?: string) => boolean; - getLinuxName: () => string | undefined; }; export function getOSFunctions(osRelease: string): OSType { @@ -59,20 +57,6 @@ export function getOSFunctions(osRelease: string): OSType { return 'os-linux'; }; - const getLinuxName = (): string | undefined => { - if (!isLinux()) { - return undefined; - } - - const etcOsRelease = readFileSync('/etc/os-release', 'utf-8'); - const match = etcOsRelease.match(/^PRETTY_NAME=(.+?)$/m); - if (!match) { - return undefined; - } - - return match[1]; - }; - return { getClassName, getName, @@ -80,6 +64,5 @@ export function getOSFunctions(osRelease: string): OSType { isLinux, isMacOS, isWindows, - getLinuxName, }; }