ShadowFox/ShadowFox_updater.sh

99 lines
3.8 KiB
Bash

#!/bin/bash
### ShadowFox updater for Mac/Linux
## author: @overdodactyl
## version: 1.0
userChrome="https://raw.githubusercontent.com/overdodactyl/ShadowFox/master/userChrome.css"
userContent="https://raw.githubusercontent.com/overdodactyl/ShadowFox/master/userContent.css"
echo "\nThis script should be run from your inside your Firefox profile.\n"
currdir=$(pwd)
## get the full path of this script (readlink for Linux, greadlink for Mac with coreutils installed)
sfp=$(readlink -f "${BASH_SOURCE[0]}" 2>/dev/null || greadlink -f "${BASH_SOURCE[0]}" 2>/dev/null)
## fallback for Macs without coreutils
if [ -z "$sfp" ]; then sfp=${BASH_SOURCE[0]}; fi
## change directory to the Firefox profile directory
cd "$(dirname "${sfp}")"
## Make chrome directory if it doesn't exist
mkdir -p chrome;
## Move to chrome directory
cd chrome;
echo "Updating userContent.css and userChrome.css for Firefox profile:\n$(pwd)\n"
if [ -e userContent.css ]; then
echo "Your current userContent.css file for this profile will be backed up and the latest ShadowFox version from github will take its place."
else
echo "A userContent.css file does not exist in this profile. If you continue, the latest ShadowFox version from github will be downloaded."
fi
if [ -e userChrome.css ]; then
echo "Your current userChrome.css file for this profile will be backed up and the latest ShadowFox version from github will take its place."
else
echo "A userChrome.css file does not exist in this profile. If you continue, the latest ShadowFox version from github will be downloaded."
fi
read -p "Continue Y/N? " -n 1 -r
echo "\n\n"
if [[ $REPLY =~ ^[Yy]$ ]]; then
if [ -e userChrome.css ]; then
# backup current userChrome.css file
bakfile="userChrome.backup.$(date +"%Y-%m-%d_%H%M")"
mv userChrome.css "${bakfile}" && echo "Your previous userChrome.css file was backed up: ${bakfile}"
fi
if [ -e userContent.css ]; then
# backup current userChrome.css file
bakfile="userContent.backup.$(date +"%Y-%m-%d_%H%M")"
mv userContent.css "${bakfile}" && echo "Your previous userContent.css file was backed up: ${bakfile}"
fi
# download latest ShadowFox userChrome.css
echo "downloading latest ShadowFox userChrome.css file"
curl -O ${userChrome} && echo "ShadowFox userChrome.css has been downloaded"
# download latest ShadowFox userContent.css
echo "downloading latest ShadowFox userContent.css file"
curl -O ${userContent} && echo "ShadowFox userContent.css has been downloaded"
else
echo "Process aborted"
fi
## change any color variables here
PRIMARY_ACCENT_COLOR="#279f27"
PRIMARY_ACCENT_COLOR_DARK="#228b22"
PRIMARY_ACCENT_COLOR_DARKEST="#006100"
sed -i '' "s/--primary-accent-color: var(--blue-40);/--primary-accent-color: $PRIMARY_ACCENT_COLOR;/" "userChrome.css"
sed -i '' "s/--primary-accent-color: var(--blue-40);/--primary-accent-color: $PRIMARY_ACCENT_COLOR;/" "userContent.css"
sed -i '' "s/--primary-accent-color-dark: var(--blue-50);/--primary-accent-color-dark: $PRIMARY_ACCENT_COLOR_DARK;/" "userChrome.css"
sed -i '' "s/--primary-accent-color-dark: var(--blue-50);/--primary-accent-color-dark: $PRIMARY_ACCENT_COLOR_DARK;/" "userContent.css"
sed -i '' "s/--primary-accent-color-darkest: var(--blue-60);/--primary-accent-color-darkest: $PRIMARY_ACCENT_COLOR_DARKEST;/" "userChrome.css"
sed -i '' "s/--primary-accent-color-darkest: var(--blue-60);/--primary-accent-color-darkest: $PRIMARY_ACCENT_COLOR_DARKEST;/" "userContent.css"
## change any webextension Internal UUIDs here.
## one example is provided
## Define Internal UUID's for extensions here
uMATRIX_INTERNAL_UUID="32818407-cb70-5d40-9f8d-81ed9f2012a6"
## Replace Ineternal UUID placeholders with variables defined above
sed -i '' "s/9eba7fab-892c-7b42-a57e-b876d4196d70/$uMATRIX_INTERNAL_UUID/" "userContent.css"
## change directory back to the original working directory
cd "${currdir}"