#!/usr/bin/env sh # Detects what OS you are running and outputs a short string to identify that OS. # Also saves the result in the $DISTRO environment variable. # -v for more verbose output source ./colors source ./say # Read arguments while getopts v flag do case "${flag}" in v) VERBOSE=true ;; esac done # Output welcome message if [ $VERBOSE ]; then say "Detecting which Linux distribution or other operating system you are using..."; fi # Check for each known operating system one-by-one if [ -f "/etc/debian_version" ]; then DISTRO="debian" if [ $VERBOSE ]; then say "${GREEN}Debian${RESET}, Ubuntu, or Raspbian OS detected."; fi elif [ -f "/etc/arch-release" ]; then DISTRO="arch" if [ $VERBOSE ]; then say "${GREEN}Arch or Manjaro-based${RESET} OS detected."; fi elif [ -f "/etc/fedora-release" ]; then DISTRO="fedora" if [ $VERBOSE ]; then say "${GREEN}Fedora${RESET} detected as the Operating System"; fi elif [ $(uname | grep -c "Darwin") -eq 1 ]; then DISTRO="mac" if [ $VERBOSE ]; then say "${GREEN}MacOS${RESET} detected."; fi else # Failed to detect OS, so complain and exit say unknown exit 1 fi # Output the short string for the detected OS if [ ! $VERBOSE ]; then say $DISTRO; fi