ShadowFox/scripts/uuids.sh

68 lines
2.1 KiB
Bash

#!/bin/bash
## Mac
## arg1 - required:
## add: add UUIDs found in internal_UUID.txt to corresponding .css files
## remove: add UUIDs found in internal_UUID.txt to corresponding .css files
## arg2 - optional:
## nogen: don't generate internal_UUIDs.txt before adding/removing
## designed for users using userContent_imports.css
## entries in internal_UUIDs.txt should take on the following format: webextension_id=internal_UUID
## author: @overdodactyl
## version: 1.0
method=$1
uuid_finder=${2:-gen}
# Determine whether UUIDs will be inserted or removed
if [ $method = "add" ]; then
var1=0
var2=1
var3="inserted"
elif [ $method = "remove" ]; then
var1=1
var2=0
var3="removed"
else
echo "must pass argument add or remove"
exit 1
fi
currdir=$(pwd)
sfp=$(readlink -f "${BASH_SOURCE[0]}" 2>/dev/null || greadlink -f "${BASH_SOURCE[0]}" 2>/dev/null)
if [ -z "$sfp" ]; then sfp=${BASH_SOURCE[0]}; fi
cd "$(dirname "${sfp}")" && cd ..
if [ $uuid_finder != "nogen" ]; then
## Generate internal_UUIDs.txt
touch "scripts/internal_UUIDs.txt"
## Get installed extesnsions from prefs.js
line=$(sed -n -e 's/^user_pref("extensions.webextensions.uuids", "{\(.*\).*}");/\1/p' ./../../prefs.js)
## Clear internal_UUIDS.txt
> 'scripts/internal_UUIDs.txt'
## Write to internal_UUIDs
IFS=',' read -ra EXTS <<< "$line"
for i in "${EXTS[@]}"; do
id=$(echo $i | sed -n 's/.*"\(.*\)\\":.*/\1/p')
uuid=$(echo $i | sed -n 's/.*"\(.*\)\\".*/\1/p')
echo "$id=$uuid" >> 'scripts/internal_UUIDs.txt'
done
echo "scripts/internal_UUIDs.txt was created"
fi
## Insert/remove any UUIDs defined in internal_UUIDs.txt into userContent.css
while IFS='' read -r line || [[ -n "$line" ]]; do
IFS='=' read -r -a array <<< "$line"
webextension_name=${array[0]%_UUID}
for filename in css/userContent-files/webextension-tweaks/*.css; do
sed -i '' "s/${array[$var1]}/${array[$var2]}/" "${filename}"
##echo ${filename}
done
sed -i '' "s/${array[$var1]}/${array[$var2]}/" "userContent.css"
done < "scripts/internal_UUIDs.txt"
echo "UUIDs were ${var3}"