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.
This commit is contained in:
Maximilian Luz 2019-12-02 22:00:21 +01:00
parent d065c13cca
commit e4176a0057
No known key found for this signature in database
GPG key ID: 70EC0937F6C26F02

178
setup.sh Normal file → Executable file
View file

@ -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."