Desktop updates: Linux package installs update via their package manager #256
@@ -69,9 +69,10 @@ test('install kinds: anything unknown keeps the in-app updater', async () => {
|
|||||||
test('package installs get their package manager’s command, not an Install button', async () => {
|
test('package installs get their package manager’s command, not an Install button', async () => {
|
||||||
const { packageUpdateHelp, isPackageManagedError } = await import('./updateErrors');
|
const { packageUpdateHelp, isPackageManagedError } = await import('./updateErrors');
|
||||||
const pacman = packageUpdateHelp('pacman')!;
|
const pacman = packageUpdateHelp('pacman')!;
|
||||||
|
// Not `pacman -U <url>`: that also wants `<url>.sig`, which we don't publish.
|
||||||
assert.equal(
|
assert.equal(
|
||||||
pacman.command,
|
pacman.command,
|
||||||
'sudo pacman -U https://code.lotusguild.org/LotusGuild/cinny-desktop/releases/download/latest/LotusChat-x86_64.pkg.tar.zst',
|
'curl -LO https://code.lotusguild.org/LotusGuild/cinny-desktop/releases/download/latest/LotusChat-x86_64.pkg.tar.zst && sudo pacman -U ./LotusChat-x86_64.pkg.tar.zst',
|
||||||
);
|
);
|
||||||
assert.match(pacman.url, /LotusChat-x86_64\.pkg\.tar\.zst$/);
|
assert.match(pacman.url, /LotusChat-x86_64\.pkg\.tar\.zst$/);
|
||||||
const deb = packageUpdateHelp('deb')!;
|
const deb = packageUpdateHelp('deb')!;
|
||||||
|
|||||||
@@ -67,7 +67,14 @@ export type PackageUpdateHelp = { command?: string; url: string; download: strin
|
|||||||
export const packageUpdateHelp = (kind: InstallKind): PackageUpdateHelp | undefined => {
|
export const packageUpdateHelp = (kind: InstallKind): PackageUpdateHelp | undefined => {
|
||||||
if (kind === 'pacman') {
|
if (kind === 'pacman') {
|
||||||
const url = `${RELEASE_DOWNLOAD}/LotusChat-x86_64.pkg.tar.zst`;
|
const url = `${RELEASE_DOWNLOAD}/LotusChat-x86_64.pkg.tar.zst`;
|
||||||
return { command: `sudo pacman -U ${url}`, url, download: 'Download package' };
|
// Download first, then install the local file: `pacman -U <url>` also
|
||||||
|
// fetches `<url>.sig` and fails without it (we don't sign packages),
|
||||||
|
// while a local file falls under LocalFileSigLevel (signature optional).
|
||||||
|
return {
|
||||||
|
command: `curl -LO ${url} && sudo pacman -U ./LotusChat-x86_64.pkg.tar.zst`,
|
||||||
|
url,
|
||||||
|
download: 'Download package',
|
||||||
|
};
|
||||||
}
|
}
|
||||||
if (kind === 'deb') {
|
if (kind === 'deb') {
|
||||||
const url = `${RELEASE_DOWNLOAD}/LotusChat-x86_64.deb`;
|
const url = `${RELEASE_DOWNLOAD}/LotusChat-x86_64.deb`;
|
||||||
|
|||||||
Reference in New Issue
Block a user