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:
parent
d065c13cca
commit
e4176a0057
178
setup.sh
Normal file → Executable file
178
setup.sh
Normal file → Executable 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."
|
||||
|
|
Loading…
Reference in a new issue