diff --git a/contrib/alpine/install.sh b/contrib/alpine/install.sh index 02230f16..4b9cc7c7 100755 --- a/contrib/alpine/install.sh +++ b/contrib/alpine/install.sh @@ -1,45 +1,53 @@ #!/bin/sh -if [ "x`id -u`" != "x0" ]; then - echo - echo "*** This script must run as root" - echo +if [ "$(id -u)" != "0" ]; then + printf "\n\e[1m*** This script must run as root\e[0m\n\n" exit 1 fi +# shellcheck disable=SC3037,SC3045,SC2154 +yorn() +{ + printf "\e[1m> %s (y/N)?\e[0m " "$*" + read -rn1 yorn + echo + + if [ "$yorn" = "y" ] || [ "$yorn" = "Y" ]; then + return 0 + fi + + return 1 +} + # Adjust base directory -grep -q alpine Makefile 2>/dev/null -if [ $? -eq 0 ]; then +if grep -q contrib/alpine Makefile 2>/dev/null; then cd ../.. -elif [ ! -e configure.ac ]; then - echo "*** Please run this script from the Finit base directory." +fi + +if [ ! -e configure.ac ]; then + printf "\n\e[1m*** Please run this script from the Finit base directory.\e[0m\n" exit 1 fi -echo -echo "*** Install Finit on Alpine Linux" -echo "========================================================================" -echo "/sbin/finit - PID 1" -echo "/lib/finit/plugins/* - All enabled Finit plugins" -echo "/etc/finit.conf - Finit configuration file" -echo "/etc/finit.d/ - Finit services" -echo -read -p "Do you want to continue (y/N)? " yorn +printf "\n\e[1mInstall Finit on Alpine Linux\n" +printf "========================================================================\e[0m\n" +printf "/sbin/finit - PID 1\n" +printf "/lib/finit/plugins/* - All enabled Finit plugins\n" +printf "/etc/finit.conf - Finit configuration file\n" +printf "/etc/finit.d/ - Finit services\n" -if [ "x$yorn" = "xy" -o "x$yorn" = "xY" ]; then - echo - echo "*** Installing Finit files ..." +if yorn "Do you want to continue"; then + printf "\n\e[1m*** Installing Finit files ...\e[0m\n" make install - cd /usr/share/doc/finit/contrib/alpine + cd /usr/share/doc/finit/contrib/alpine || exit 1 for file in finit.conf rc.local; do install -vbD $file /etc/$file done cp -va finit.d /etc/ - read -p "*** Install Finit as the system default Init (y/N)? " yorn - if [ "x$yorn" = "xy" -o "x$yorn" = "xY" ]; then - echo "*** Updating /sbin/init symlink --> finit ..." - cd /sbin + if yorn "Install Finit as the system default Init"; then + printf "\e[1m*** Updating /sbin/init symlink --> finit ...\e[0m\n" + cd /sbin || exit 1 rm init ln -s finit init @@ -48,10 +56,8 @@ if [ "x$yorn" = "xy" -o "x$yorn" = "xY" ]; then ln -s reboot shutdown ln -s reboot suspend fi - echo "*** Done" + printf "\n\e[1m*** Done\e[0m\n" echo else - echo - echo "*** Aborting install." - echo + printf "\n\e[1m*** Aborting install.\e[0m\n\n" fi