Skip to content

Commit

Permalink
add uninstall for distros. ubuntu22 specific install script
Browse files Browse the repository at this point in the history
  • Loading branch information
jgresham committed May 6, 2024
1 parent ee22856 commit 2a73cc7
Show file tree
Hide file tree
Showing 6 changed files with 31 additions and 1 deletion.
2 changes: 1 addition & 1 deletion .github/workflows/podman-install-linux.yml
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ jobs:
"fedora:39",
"manjarolinux/base",
"archlinux:latest",
"opensuse/leap:latest"
"opensuse/tumbleweed:latest"
]

container:
Expand Down
6 changes: 6 additions & 0 deletions src/main/podman/install/installOnLinux.ts
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,8 @@ import { script as dnfInstallScript } from './dnfInstallScript';
import { script as pacmanInstallScript } from './pacmanInstallScript';
import { script as yumInstallScript } from './yumInstallScript';
import { script as zypperInstallScript } from './zypperInstallScript';
// to be deprecated in the future
import { script as ubuntu22InstallScript } from './ubuntu22InstallScript';

// const UBUNTU_INSTALL_SCRIPT = 'installOnUbuntuScript';
/**
Expand All @@ -33,6 +35,10 @@ const installOnLinux = async (): Promise<any> => {
const pkgManager: PackageManager = await findPackageManager();
if (pkgManager === 'dpkg') {
installScript = aptInstallScript;
// to be deprecated in the future
if(distro.includes('buntu') && release.includes('22.')) {
installScript = ubuntu22InstallScript;
}
} else if (pkgManager === 'dnf') {
installScript = dnfInstallScript;
} else if (pkgManager === 'yum') {
Expand Down
14 changes: 14 additions & 0 deletions src/main/podman/install/ubuntu22InstallScript.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
// Same script as on https://podman.io/docs/installation, except the 'sudo' is removed as
// sudo-prompt will not execute a command with sudo
export const script = `apt-get -y update -qq
apt-get -y -qq install curl
mkdir -p /etc/apt/keyrings
curl -fsSL https://download.opensuse.org/repositories/devel:kubic:libcontainers:unstable/xUbuntu_22.04/Release.key \
| gpg --dearmor \
| tee /etc/apt/keyrings/devel_kubic_libcontainers_unstable.gpg > /dev/null
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/devel_kubic_libcontainers_unstable.gpg]\
https://download.opensuse.org/repositories/devel:kubic:libcontainers:unstable/xUbuntu_22.04/ /" \
| tee /etc/apt/sources.list.d/devel:kubic:libcontainers:unstable.list > /dev/null
apt-get update -qq
apt-get -qq -y install podman`;
1 change: 1 addition & 0 deletions src/main/podman/uninstall/pacmanUninstallScript.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
export const script = 'pacman -Rs podman';
7 changes: 7 additions & 0 deletions src/main/podman/uninstall/uninstallOnLinux.ts
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,9 @@ import {
} from '../../nn-auto-updater/findPackageManager.js';
import { script as aptUninstallScript } from './aptUninstallScript';
import { script as dnfUninstallScript } from './dnfUninstallScript';
import { script as pacmanUninstallScript } from './pacmanUninstallScript';
import { script as yumUninstallScript } from './yumUninstallScript';
import { script as zypperUninstallScript } from './zypperUninstallScript';

/**
* Uninstall podman by removing binaries and various configuration files
Expand All @@ -28,9 +30,14 @@ const uninstallOnLinux = async (): Promise<boolean | { error: string }> => {
uninstallScript = aptUninstallScript;
} else if (pkgManager === 'dnf') {
uninstallScript = dnfUninstallScript;
} else if (pkgManager === 'pacman') {
uninstallScript = pacmanUninstallScript;
} else if (pkgManager === 'yum') {
uninstallScript = yumUninstallScript;
} else if (pkgManager === 'zypper') {
uninstallScript = zypperUninstallScript;
}

const { stdout, stderr } = await execAwait(uninstallScript, {
log: true,
sudo: true,
Expand Down
2 changes: 2 additions & 0 deletions src/main/podman/uninstall/zypperUninstallScript.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
// biome-ignore lint/style/noUnusedTemplateLiteral: less diff for future changes
export const script = `zypper remove -y podman`;

0 comments on commit 2a73cc7

Please sign in to comment.