#!/bin/sh -e . ../common-script.sh installLinutil() { printf "%b\n" "${YELLOW}Installing Linutil...${RC}" case "$PACKAGER" in pacman) printf "%b\n" "-----------------------------------------------------" printf "%b\n" "Select the package to install:" printf "%b\n" "1. ${CYAN}linutil${RC} (stable release compiled from source)" printf "%b\n" "2. ${CYAN}linutil-bin${RC} (stable release pre-compiled)" printf "%b\n" "3. ${CYAN}linutil-git${RC} (compiled from the latest commit)" printf "%b\n" "-----------------------------------------------------" printf "%b" "Enter your choice: " read -r choice case $choice in 1) "$AUR_HELPER" -S --needed --noconfirm linutil ;; 2) "$AUR_HELPER" -S --needed --noconfirm linutil-bin ;; 3) "$AUR_HELPER" -S --needed --noconfirm linutil-git ;; *) printf "%b\n" "${RED}Invalid choice:${RC} $choice" exit 1 ;; esac printf "%b\n" "${GREEN}Installed successfully.${RC}" ;; *) printf "%b\n" "${RED}There are no official packages for your distro.${RC}" printf "%b" "${YELLOW}Do you want to install the crates.io package? (y/N): ${RC}" read -r choice case $choice in y|Y) if ! command_exists cargo; then printf "%b\n" "${YELLOW}Installing rustup...${RC}" case "$PACKAGER" in pacman) "$ESCALATION_TOOL" "$PACKAGER" -S --needed --noconfirm curl rustup man-db ;; dnf) "$ESCALATION_TOOL" "$PACKAGER" install -y curl rustup man-pages man-db man ;; zypper) "$ESCALATION_TOOL" "$PACKAGER" install -n curl gcc make curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y . $HOME/.cargo/env ;; apk) "$ESCALATION_TOOL" "$PACKAGER" add build-base "$ESCALATION_TOOL" "$PACKAGER" add rustup rustup-init # shellcheck disable=SC1091 . "$HOME/.cargo/env" ;; *) curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y . $HOME/.cargo/env ;; esac fi rustup default stable cargo install --force linutil_tui printf "%b\n" "${GREEN}Installed successfully.${RC}" installExtra ;; *) printf "%b\n" "${RED}Linutil not installed.${RC}" ;; esac esac } installExtra() { printf "%b\n" "${YELLOW}Installing the manpage...${RC}" "$ESCALATION_TOOL" mkdir -p /usr/share/man/man1 curl 'https://raw.githubusercontent.com/ChrisTitusTech/linutil/refs/heads/main/man/linutil.1' | "$ESCALATION_TOOL" tee '/usr/share/man/man1/linutil.1' > /dev/null printf "%b\n" "${YELLOW}Creating a Desktop Entry...${RC}" "$ESCALATION_TOOL" mkdir -p /usr/share/applications curl 'https://raw.githubusercontent.com/ChrisTitusTech/linutil/refs/heads/main/linutil.desktop' | "$ESCALATION_TOOL" tee /usr/share/applications/linutil.desktop > /dev/null printf "%b\n" "${GREEN}Done.${RC}" } checkEnv checkEscalationTool checkAURHelper installLinutil