papirus-icon-theme/install.sh
Serhii Yeremenko 311c5388e5
Replace ICON_THEMES with EXTRA_THEMES in Papirus Installer
Changed logic and variable name that control what icon themes to install
with Papirus Installer.
2023-10-28 12:40:43 +03:00

110 lines
2.5 KiB
Bash
Executable file

#!/bin/sh
set -e
gh_repo="papirus-icon-theme"
gh_desc="Papirus icon theme"
cat <<- EOF
ppppp ii
pp pp aaaaa ppppp rr rrr uu uu sssss
ppppp aa aa pp pp ii rrrr uu uu ssss
pp aa aa pp pp ii rr uu uu ssss
pp aaaaa ppppp ii rr uuuuu sssss
pp
pp
$gh_desc
https://github.com/PapirusDevelopmentTeam/$gh_repo
EOF
: "${DESTDIR:=/usr/share/icons}"
: "${EXTRA_THEMES:=ePapirus ePapirus-Dark Papirus-Dark Papirus-Light}"
: "${TAG:=master}"
: "${uninstall:=false}"
_msg() {
echo "=>" "$@"
}
_rm() {
# removes parent directories if empty
_sudo rm -rf "$1"
_sudo rmdir -p "$(dirname "$1")" 2>/dev/null || true
}
_sudo() {
if [ -w "$DESTDIR" ] || [ -w "$(dirname "$DESTDIR")" ]; then
"$@"
else
sudo "$@"
fi
}
_download() {
_msg "Getting the latest version from GitHub ..."
wget -O "$temp_file" \
"https://github.com/PapirusDevelopmentTeam/$gh_repo/archive/$TAG.tar.gz"
_msg "Unpacking archive ..."
tar -xzf "$temp_file" -C "$temp_dir"
}
_uninstall() {
# shellcheck disable=2068
set -- $@ # split args by space
for theme in "$@"; do
test -d "$DESTDIR/$theme" || continue
_msg "Deleting '$theme' ..."
_rm "$DESTDIR/$theme"
done
}
_install() {
_sudo mkdir -p "$DESTDIR"
# shellcheck disable=2068
set -- $@ # split args by space
for theme in "$@"; do
test -d "$temp_dir/$gh_repo-$TAG/$theme" || continue
_msg "Installing '$theme' ..."
_sudo cp -R "$temp_dir/$gh_repo-$TAG/$theme" "$DESTDIR"
_sudo cp -f \
"$temp_dir/$gh_repo-$TAG/AUTHORS" \
"$temp_dir/$gh_repo-$TAG/LICENSE" \
"$DESTDIR/$theme" || true
_sudo gtk-update-icon-cache -q "$DESTDIR/$theme" || true
done
# Try to restore the color of folders from a config
if command -v papirus-folders >/dev/null; then
papirus-folders -R || true
fi
}
_cleanup() {
_msg "Clearing cache ..."
rm -rf "$temp_file" "$temp_dir"
rm -f "$HOME/.cache/icon-cache.kcache"
_msg "Done!"
}
trap _cleanup EXIT HUP INT TERM
temp_file="$(mktemp -u)"
temp_dir="$(mktemp -d)"
if [ "$uninstall" = "false" ]; then
_download
_uninstall Papirus "$EXTRA_THEMES"
_install Papirus "$EXTRA_THEMES"
else
_uninstall Papirus "$EXTRA_THEMES"
fi