diff --git a/updater/src/main/java/bisq/updater/linux/DebInstaller.java b/updater/src/main/java/bisq/updater/linux/DebInstaller.java new file mode 100644 index 0000000000..0c4bad4a39 --- /dev/null +++ b/updater/src/main/java/bisq/updater/linux/DebInstaller.java @@ -0,0 +1,29 @@ +package bisq.updater.linux; + +import java.nio.file.Path; + +import java.util.List; + +import lombok.extern.slf4j.Slf4j; + + + +import bisq.updater.InstallationFailedException; +import bisq.updater.linux.pkexec.PkExec; + +@Slf4j +public class DebInstaller { + public static void install(Path debFile) { + log.info("Installing {}", debFile); + + var cmd = List.of("dpkg", "--install", debFile.toAbsolutePath().toString()); + Process dpkgProcess = PkExec.run(cmd); + + int exitCode = dpkgProcess.exitValue(); + if (exitCode != 0) { + throw new InstallationFailedException("Deb installation exited with " + exitCode); + } + + log.info("Installation finished."); + } +} diff --git a/updater/src/main/java/bisq/updater/linux/RpmInstaller.java b/updater/src/main/java/bisq/updater/linux/RpmInstaller.java new file mode 100644 index 0000000000..2c3993a310 --- /dev/null +++ b/updater/src/main/java/bisq/updater/linux/RpmInstaller.java @@ -0,0 +1,29 @@ +package bisq.updater.linux; + +import java.nio.file.Path; + +import java.util.List; + +import lombok.extern.slf4j.Slf4j; + + + +import bisq.updater.InstallationFailedException; +import bisq.updater.linux.pkexec.PkExec; + +@Slf4j +public class RpmInstaller { + public static void install(Path rpmFile) { + log.info("Installing {}", rpmFile); + + var cmd = List.of("rpm", "--upgrade", rpmFile.toAbsolutePath().toString()); + Process rpmProcess = PkExec.run(cmd); + + int exitCode = rpmProcess.exitValue(); + if (exitCode != 0) { + throw new InstallationFailedException("Deb installation exited with " + exitCode); + } + + log.info("Installation finished."); + } +}