33 lines
779 B
TypeScript
33 lines
779 B
TypeScript
// Copyright 2023 Signal Messenger, LLC
|
|
// SPDX-License-Identifier: AGPL-3.0-only
|
|
|
|
import { version as osVersion } from 'os';
|
|
|
|
import type { LoggerType } from '../types/Logging';
|
|
|
|
const MIN_UBUNTU_VERSION = '20.04';
|
|
|
|
export function getUbuntuVersion(): string | undefined {
|
|
if (process.platform !== 'linux') {
|
|
return undefined;
|
|
}
|
|
|
|
const match = osVersion().match(/^#\d+~([\d.]+)-Ubuntu\s/);
|
|
if (!match) {
|
|
return undefined;
|
|
}
|
|
|
|
return match[1];
|
|
}
|
|
|
|
export function isLinuxVersionSupported(logger?: LoggerType): boolean {
|
|
const ubuntu = getUbuntuVersion();
|
|
if (ubuntu !== undefined && ubuntu < MIN_UBUNTU_VERSION) {
|
|
logger?.warn(
|
|
`updater/isLinuxVersionSupported: unsupported Ubuntu version ${ubuntu}`
|
|
);
|
|
return false;
|
|
}
|
|
|
|
return true;
|
|
}
|