dotfiles/de/home/.librewolf/config/update.sh
2025-10-15 07:45:08 -07:00

92 lines
3.1 KiB
Bash
Executable file

#!/bin/bash
if [[ ! $(find ./js/betterfox.js -cmin -10080 -print 2>/dev/null) ]]; then
if curl 'https://raw.githubusercontent.com/yokoffing/Betterfox/main/user.js' > 'betterfox.js.part'; then
printf 'successfully downloaded latest betterfox user.js\n'
mv betterfox.js.part ./js/betterfox.js
else
printf 'failed to download latest betterfox user.js\n'
rm betterfox.js.part
# exit 1
fi
fi
rgba_to_hex(){
r="${1}"
g="${2}"
b="${3}"
a="${4}"
aa=$(echo "${a}*255"|bc)
printf '#%x%x%x%x\n' "${r}" "${g}" "${b}" "${aa%.*}"
}
#rgba_to_hex 100 150 200 0.5
jq_parse(){
json_file="${1}"
jq_query="${2}"
jq -r "${2}" "${1}"
}
#jq_parse ./profiles/penelope/vars.json '.color.r'
#exit 1
gen_hex(){
json="${1}"
colorvar="${2}"
r=$(jq_parse "${json}" ".${colorvar}.r")
g=$(jq_parse "${json}" ".${colorvar}.g")
b=$(jq_parse "${json}" ".${colorvar}.b")
a=$(jq_parse "${json}" ".${colorvar}.a")
rgba_to_hex "${r}" "${g}" "${b}" "${a}"
}
for profile in ./profiles/*/;do
profile="${profile%/}"
profile_name=$(basename "${profile}")
mkdir -p "../${profile_name}"
browser_profile_dir=$(realpath "../${profile_name}")
mkdir -p "${browser_profile_dir}"
if [[ -L "${browser_profile_dir}/chrome" ]];then
rm "${browser_profile_dir}/chrome"
fi
if [[ -f "${profile}/vars.json" ]];then
mkdir -p "${browser_profile_dir}/chrome"
json="${profile}/vars.json"
# bg_r=$(jq_parse "${json}" '.background_color.r')
# bg_g=$(jq_parse "${json}" '.background_color.g')
# bg_b=$(jq_parse "${json}" '.background_color.b')
# bg_a=$(jq_parse "${json}" '.background_color.a')
# css_bg_rgba=$(printf 'rgba(%s,%s,%s,%s)' "${bg_r}" "${bg_g}" "${bg_b}" "${bg_a}")
# css_bg_hex=$(rgba_to_hex "${bg_r}" "${bg_g}" "${bg_b}" "${bg_a}")
# p_r=$(jq_parse "${json}" '.color.r')
# p_g=$(jq_parse "${json}" '.color.g')
# p_b=$(jq_parse "${json}" '.color.b')
# p_a=$(jq_parse "${json}" '.color.a')
# css_bg_rgba=$(printf 'rgba(%s,%s,%s,%s)' "${p_r}" "${p_g}" "${p_b}" "${p_a}")
# css_p_hex=$(rgba_to_hex "${p_r}" "${p_g}" "${p_b}" "${p_a}")
css_bg_hex=$(gen_hex "${json}" 'background_color')
# css_nav_hex=$(gen_hex "${json}" 'nav_color')
css_p_hex=$(gen_hex "${json}" 'color')
for c in ./chrome/*.css;do
css_name=$(basename "${c}")
sed "s/\[\[\[BACKGROUNDHEX\]\]\]/${css_bg_hex}/" "${c}" | tee "${browser_profile_dir}/chrome/${css_name}"
done
for pc in "${browser_profile_dir}/chrome/"*.css;do
css_name=$(basename "${c}")
sed -i "s/\[\[\[COLORHEX\]\]\]/${css_p_hex}/" "${pc}"
done
# sed "s/\[\[\[BACKGROUNDHEX\]\]\]/${css_bg_hex}/" ./chrome/userChrome.css | tee "${browser_profile_dir}/chrome/userChrome.css"
# sed "s/\[\[\[BACKGROUNDHEX\]\]\]/${css_bg_hex}/" ./chrome/userChrome.css | tee "${browser_profile_dir}/chrome/userChrome.css"
# echo "${css_bg_rgba}"
# echo "${css_bg_hex}"
fi
# if [[ -L "${browser_profile_dir}/user.js" ]];then
# rm "${browser_profile_dir}/user.js"
# fi
# if [[ -f "${profile}/user.js" ]];then
# echo "joining js files"
# cat "./js/betterfox.js" "./js/global.js" "${profile}/user.js" | tee "${browser_profile_dir}/user.js" > /dev/null
# fi
done