浏览代码

Fix shellcheck warnings in setup.sh

Fix linter warnings in setup.sh, outpu info about files added, removed
or changed via verbose flags. Re-format console output for readability.
Maximilian Luz 5 年之前
父节点
当前提交
e4176a0057
共有 1 个文件被更改,包括 101 次插入77 次删除
  1. 101 77
      setup.sh

+ 101 - 77
setup.sh

@@ -1,133 +1,157 @@
-#!/bin/sh
+#!/bin/bash
 
 LX_BASE=""
 LX_VERSION=""
 
-if [ -r /etc/os-release ]; then
-    . /etc/os-release
-	if [ $ID = arch ]; then
-		LX_BASE=$ID
-    elif [ $ID = ubuntu ]; then
-		LX_BASE=$ID
-		LX_VERSION=$VERSION_ID
-	elif [ ! -z "$UBUNTU_CODENAME" ] ; then
-		LX_BASE="ubuntu"
-		LX_VERSION=$VERSION_ID
+if [ -r "/etc/os-release" ]; then
+    . "/etc/os-release"
+    if [ "$ID" = "arch" ]; then
+        LX_BASE="$ID"
+    elif [ "$ID" = "ubuntu" ]; then
+        LX_BASE="$ID"
+        LX_VERSION=$VERSION_ID
+    elif [ -n "$UBUNTU_CODENAME" ] ; then
+        LX_BASE="ubuntu"
+        LX_VERSION="$VERSION_ID"
     else
-		LX_BASE=$ID
-		LX_VERSION=$VERSION
+        LX_BASE="$ID"
+        LX_VERSION="$VERSION"
     fi
 else
     echo "Could not identify your distro. Please open script and run commands manually."
-	exit
+    exit
 fi
 
 SUR_MODEL="$(dmidecode | grep "Product Name" -m 1 | xargs | sed -e 's/Product Name: //g')"
-SUR_SKU="$(dmidecode | grep "SKU Number" -m 1 | xargs | sed -e 's/SKU Number: //g')"
 
-echo "\nRunning $LX_BASE version $LX_VERSION on a $SUR_MODEL.\n"
+echo "Running $LX_BASE version $LX_VERSION on a $LX_MODEL."
+read -rp "Press enter if this is correct, or CTRL-C to cancel." tmp; echo
+echo "Continuing setup..."
 
-read -rp "Press enter if this is correct, or CTRL-C to cancel." cont;echo
+echo "==> Copying the config files under root to where they belong..."
+for dir in $(ls root/); do cp -Rbv "root/$dir/"* "/$dir/"; done
+echo
 
-echo "\nContinuing setup...\n"
+echo "==> Copying firmware files under root..."
+cp -rv firmware/* /lib/firmware/
+echo
 
-echo "Copying the config files under root to where they belong...\n"
-for dir in $(ls root/); do cp -Rb root/$dir/* /$dir/; done
+echo "==> Making /lib/systemd/system-sleep/sleep executable..."
+chmod -v a+x /lib/systemd/system-sleep/sleep
 
-echo "Copying firmware files under root...\n"
-cp -r firmware/* /lib/firmware/
-
-echo "Making /lib/systemd/system-sleep/sleep executable...\n"
-chmod a+x /lib/systemd/system-sleep/sleep
-
-echo "Suspend is recommended over hibernate. If you chose to use hibernate, please make sure you've setup your swap file per the instructions in the README.\n"
-read -rp "Do you want to replace suspend with hibernate? (type yes or no) " usehibernate;echo
+printf "
+Suspend is recommended over hibernate. If you chose to use hibernate, please
+make sure you've setup your swap file per the instructions in the README.\n\n"
+read -rp "Do you want to replace suspend with hibernate? (type yes or no): " \
+    usehibernate;echo
 
 if [ "$usehibernate" = "yes" ]; then
-	if [ "$LX_BASE" = "ubuntu" ] && [ 1 -eq "$(echo "${LX_VERSION} >= 17.10" | bc)" ]; then
-		echo "Using Hibernate instead of Suspend...\n"
-		ln -sfb /lib/systemd/system/hibernate.target /etc/systemd/system/suspend.target && sudo ln -sfb /lib/systemd/system/systemd-hibernate.service /etc/systemd/system/systemd-suspend.service
-	else
-		echo "Using Hibernate instead of Suspend...\n"
-		ln -sfb /usr/lib/systemd/system/hibernate.target /etc/systemd/system/suspend.target && sudo ln -sfb /usr/lib/systemd/system/systemd-hibernate.service /etc/systemd/system/systemd-suspend.service
-	fi
+    if [ "$LX_BASE" = "ubuntu" ] && [ 1 -eq "$(echo "${LX_VERSION} >= 17.10" | bc)" ]; then
+        echo "==> Using Hibernate instead of Suspend..."
+        ln -vsfb /lib/systemd/system/hibernate.target /etc/systemd/system/suspend.target
+        sudo ln -vsfb /lib/systemd/system/systemd-hibernate.service /etc/systemd/system/systemd-suspend.service
+    else
+        echo "==> Using Hibernate instead of Suspend..."
+        ln -vsfb /usr/lib/systemd/system/hibernate.target /etc/systemd/system/suspend.target
+        sudo ln -vsfb /usr/lib/systemd/system/systemd-hibernate.service /etc/systemd/system/systemd-suspend.service
+    fi
 else
-	echo "Not touching Suspend\n"
+    echo "==> Not touching Suspend"
 fi
 
-echo "Patched libwacom packages are available to better support the pen. If you intend to use the pen, it's recommended that you install them!\n"
-
-read -rp "Do you want to install the patched libwacom packages? (type yes or no) " uselibwacom;echo
+printf "
+Patched libwacom packages are available to better support the pen. If you
+intend to use the pen, it's recommended that you install them!\n\n"
+read -rp "Do you want to install the patched libwacom packages? (type yes or no): " \
+    uselibwacom;echo
 
 if [ "$uselibwacom" = "yes" ]; then
-	echo "Installing patched libwacom packages..."
-		dpkg -i packages/libwacom/*.deb
-		apt-mark hold libwacom
+    echo "==> Installing patched libwacom packages..."
+    dpkg -i packages/libwacom/*.deb
+    apt-mark hold libwacom
 else
-	echo "Not touching libwacom"
+    echo "==> Not touching libwacom"
 fi
 
-echo "This repo comes with example xorg and pulse audio configs. If you chose to keep them, be sure to rename them and uncomment out what you'd like to keep!\n"
-
-read -rp "Do you want to remove the example intel xorg config? (type yes or no) " removexorg;echo
+printf "
+This repo comes with example xorg and pulse audio configs. If you chose to
+keep them, be sure to rename them and uncomment out what you'd like to
+keep!\n\n"
+read -rp "Do you want to remove the example intel xorg config? (type yes or no): " \
+    removexorg;echo
 
 if [ "$removexorg" = "yes" ]; then
-	echo "Removing the example intel xorg config..."
-		rm /etc/X11/xorg.conf.d/20-intel_example.conf
+    echo "==> Removing the example intel xorg config..."
+    rm -v /etc/X11/xorg.conf.d/20-intel_example.conf
 else
-	echo "Not touching example intel xorg config (/etc/X11/xorg.conf.d/20-intel_example.conf)"
+    echo "==> Not touching example intel xorg config" \
+         "    (/etc/X11/xorg.conf.d/20-intel_example.conf)"
 fi
 
-read -rp "Do you want to remove the example pulse audio config files? (type yes or no) " removepulse;echo
+echo
+read -rp "Do you want to remove the example pulse audio config files? (type yes or no): "\
+        removepulse;echo
 
 if [ "$removepulse" = "yes" ]; then
-	echo "Removing the example pulse audio config files..."
-		rm /etc/pulse/daemon_example.conf
-		rm /etc/pulse/default_example.pa
+    echo "==> Removing the example pulse audio config files..."
+    rm -v /etc/pulse/daemon_example.conf
+    rm -v /etc/pulse/default_example.pa
 else
-	echo "Not touching example pulse audio config files (/etc/pulse/*_example.*)"
+    echo "==> Not touching example pulse audio config files" \
+         "    (/etc/pulse/*_example.*)"
 fi
 
 if [ "$SUR_MODEL" = "Surface Pro 3" ]; then
-	echo "\nRemove unneeded udev rules for Surface Pro 3...\n"
-	rm /etc/udev/rules.d/98-keyboardscovers.rules
+    echo "==> Remove unneeded udev rules for Surface Pro 3..."
+    rm -v /etc/udev/rules.d/98-keyboardscovers.rules
 fi
 
 if [ "$SUR_MODEL" = "Surface Go" ]; then
-	if [ ! -f "/etc/init.d/surfacego-touchscreen" ]; then
-		echo "\nPatching power control for Surface Go touchscreen...\n"
-		echo "echo \"on\" > /sys/devices/pci0000:00/0000:00:15.1/i2c_designware.1/power/control" > /etc/init.d/surfacego-touchscreen
-		chmod 755 /etc/init.d/surfacego-touchscreen
-		update-rc.d surfacego-touchscreen defaults
-	fi
+    if [ ! -f "/etc/init.d/surfacego-touchscreen" ]; then
+        echo "==> Patching power control for Surface Go touchscreen..."
+        echo "echo \"on\" > /sys/devices/pci0000:00/0000:00:15.1/i2c_designware.1/power/control" \
+            > /etc/init.d/surfacego-touchscreen
+        chmod -v 755 /etc/init.d/surfacego-touchscreen
+        update-rc.d surfacego-touchscreen defaults
+    fi
 fi
 
-read -rp "Do you want to set your clock to local time instead of UTC? This fixes issues when dual booting with Windows. (type yes or no) " uselocaltime;echo
+read -rp "
+Do you want to set your clock to local time instead of UTC? This fixes
+issues when dual booting with Windows. (type yes or no): " \
+    uselocaltime;echo
 
 if [ "$uselocaltime" = "yes" ]; then
-	echo "Setting clock to local time...\n"
-
-	timedatectl set-local-rtc 1
-	hwclock --systohc --localtime
+    echo "==> Setting clock to local time..."
+    timedatectl set-local-rtc 1
+    hwclock --systohc --localtime
 else
-	echo "Not setting clock"
+    echo "==> Not setting clock"
 fi
 
-read -rp "Do you want this script to download and install the latest kernel for you? (type yes or no) " autoinstallkernel;echo
+read -rp "
+Do you want this script to download and install the latest kernel for you?
+(type yes or no): " autoinstallkernel;echo
 
 if [ "$autoinstallkernel" = "yes" ]; then
-	echo "Downloading latest kernel...\n"
+    echo "==> Downloading latest kernel..."
 
-	urls=$(curl --silent "https://api.github.com/repos/qzed/linux-surface/releases/latest" | tr ',' '\n' | grep '"browser_download_url":' | sed -E 's/.*"([^"]+)".*/\1/' | grep '.deb$')
+    urls=$(curl --silent "https://api.github.com/repos/qzed/linux-surface/releases/latest" \
+           | tr ',' '\n' \
+           | grep '"browser_download_url":' \
+           | sed -E 's/.*"([^"]+)".*/\1/' \
+           | grep '.deb$')
 
-	resp=$(wget -P tmp $urls)
+    wget -P tmp $urls
 
-	echo "Installing latest kernel...\n"
+    echo
+    echo "==> Installing latest kernel..."
 
-	dpkg -i tmp/*.deb
-	rm -rf tmp
+    dpkg -i tmp/*.deb
+    rm -rf tmp
 else
-	echo "Not downloading latest kernel"
+    echo "==> Not downloading latest kernel"
 fi
 
-echo "\nAll done! Please reboot."
+echo
+echo "All done! Please reboot."