Install script: Don't bother using sudo if user is running as root

On some systems, sudo isn't present by default, so allow the user to manually elevate the script bypassing the use of sudo.
This commit is contained in:
foxt
2024-08-09 10:01:59 +01:00
committed by GitHub
parent c93ca5d916
commit 208e2f67e3

View File

@@ -7,6 +7,7 @@ CYAN='\033[0;36m'
NC='\033[0m' # No Color NC='\033[0m' # No Color
# Warn with a prompt if we're running as root # Warn with a prompt if we're running as root
SUDO=sudo
if [ "$EUID" -eq 0 ]; then if [ "$EUID" -eq 0 ]; then
echo -e "${ORANGE}WARNING: You are running this script as root. It is recommended to run this script as a non-root user.${NC}" echo -e "${ORANGE}WARNING: You are running this script as root. It is recommended to run this script as a non-root user.${NC}"
echo -e "${ORANGE}Do you want to continue? (y/n)${NC}" echo -e "${ORANGE}Do you want to continue? (y/n)${NC}"
@@ -16,6 +17,8 @@ if [ "$EUID" -eq 0 ]; then
echo -e "${ORANGE}Aborting installation.${NC}" echo -e "${ORANGE}Aborting installation.${NC}"
exit 1 exit 1
fi fi
SUDO=
fi fi
# CD to project root if we're in the scripts dir # CD to project root if we're in the scripts dir
@@ -58,13 +61,13 @@ if [[ -f /etc/os-release ]]; then
source /etc/os-release source /etc/os-release
if [[ "$ID_LIKE" == *"debian"* || "$ID" == *"debian"* ]]; then if [[ "$ID_LIKE" == *"debian"* || "$ID" == *"debian"* ]]; then
pkg_manager="apt-get" pkg_manager="apt-get"
update_cmd="sudo $pkg_manager update" update_cmd="$SUDO $pkg_manager update"
install_cmd="sudo $pkg_manager install -y" install_cmd="$SUDO $pkg_manager install -y"
echo -e "${GREEN}Detected Debian-based system. Using apt-get package manager.${NC}" echo -e "${GREEN}Detected Debian-based system. Using apt-get package manager.${NC}"
elif [[ "$ID_LIKE" == *"arch"* || "$ID" == *"arch"* ]]; then elif [[ "$ID_LIKE" == *"arch"* || "$ID" == *"arch"* ]]; then
pkg_manager="pacman" pkg_manager="pacman"
update_cmd="sudo $pkg_manager -Sy" update_cmd="$SUDO $pkg_manager -Sy"
install_cmd="sudo $pkg_manager -S --noconfirm" install_cmd="$SUDO $pkg_manager -S --noconfirm"
echo -e "${GREEN}Detected Arch-based system. Using pacman package manager.${NC}" echo -e "${GREEN}Detected Arch-based system. Using pacman package manager.${NC}"
else else
echo -e "${ORANGE}Your operating system is not supported. Either try to install manually or reach out to spoolman github for support.${NC}" echo -e "${ORANGE}Your operating system is not supported. Either try to install manually or reach out to spoolman github for support.${NC}"
@@ -249,14 +252,14 @@ WantedBy=default.target
# Create the systemd service unit file # Create the systemd service unit file
service_file="/etc/systemd/system/$service_name.service" service_file="/etc/systemd/system/$service_name.service"
echo "$service_unit" | sudo tee "$service_file" > /dev/null echo "$service_unit" | $SUDO tee "$service_file" > /dev/null
# Reload the systemd user service manager # Reload the systemd user service manager
sudo systemctl daemon-reload $SUDO systemctl daemon-reload
# Enable and start the service # Enable and start the service
sudo systemctl enable "$service_name" $SUDO systemctl enable "$service_name"
sudo systemctl start "$service_name" $SUDO systemctl start "$service_name"
# Load .env file now # Load .env file now
set -o allexport set -o allexport