diff --git a/checkssb.sh b/checkssb.sh new file mode 100755 index 0000000..27e87de --- /dev/null +++ b/checkssb.sh @@ -0,0 +1,68 @@ +#!/usr/bin/env sh + +# ©2021 Brainwrecked Tech + +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 2 of the License, or +# (at your option) any later version. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. + +# For a copy of this license, see . + +[ -z ${1+x} ] && APPS_DIR="." || APPS_DIR="${1}" + +FOUNDDTF=() + +while IFS= read -r -d $'\0'; do + FOUNDDTF+=("${REPLY#./}") +done < <(find "${APPS_DIR}" -type f -name '*.desktop' -print0) + +for DSKTPFIL in "${FOUNDDTF[@]}" +do + echo "${DSKTPFIL}" + + WAPPNAME="${DSKTPFIL%.desktop}" + WAPPNAME="${WAPPNAME%.proxy}" + + ICONFILE="$(grep '^Icon=' "${DSKTPFIL}" | cut -d= -f2)" + if [ -e "${ICONFILE}" ]; then + printf -- '\e[1;32m:: Icon file %s exists\e[0m\n' "${ICONFILE}" + else + printf -- '\e[1;31m:: Icon file %s missing\e[0m\n' "${ICONFILE}" + fi + + FFCACHE="/run/user/1001/${WAPPNAME}-ssb" + if [ -e "${FFCACHE}" ]; then + printf -- '\e[1;32m:: Firefox cache directory %s exists\e[0m\n' "${FFCACHE}" + else + printf -- '\e[1;31m:: Firefox cache directory %s missing. Create it? [Y/n] ' "${FFCACHE}" + read FIXIT + if [ ! "${FIXIT,,}" = "n" ]; then + mkdir -p "/run/user/${UID}/${WAPPNAME}-ssb" + printf -- '\e[1;32m:: Fixed missing Firefox cache directory.\e[0m\n' + fi + fi + + FFPF_DIR="$(find "${HOME}/.mozilla/firefox" -type d -name '*'."${WAPPNAME}-ssb")" + if [ -n "${FFPF_DIR}" ]; then + printf -- '\e[1;32m:: Firefox profile %s exists\e[0m\n' "${FFPF_DIR}" + else + printf -- '\e[1;31m:: Firefox profile %s/.mozilla/firefox/????????.%s-ssb missing. Create it? [Y/n] ' "${HOME}" "${WAPPNAME}" + read FIXIT + if [ ! "${FIXIT,,}" = "n" ]; then + /usr/bin/firefox -CreateProfile "${WAPPNAME,,}-ssb" -no-remote + FFPF_DIR="$(find "${HOME}/.mozilla/firefox" -type d -name '*'."${WAPPNAME,,}-ssb")" + echo 'user_pref("browser.cache.disk.parent_directory", "/run/user/'"${UID}"'/'"${WAPPNAME}"'-ssb");' >> "${FFPF_DIR}/user.js" + echo 'user_pref("browser.ssb.enabled", true);' >> "${FFPF_DIR}/user.js" + echo 'user_pref("extensions.pocket.enabled", false);' >> "${FFPF_DIR}/user.js" + echo 'user_pref("privacy.donottrackheader.enabled", true);' >> "${FFPF_DIR}/user.js" + printf -- '\e[1;32m:: Fixed missing Firefox profile %s.\e[0m\n' "${FFPF_DIR}" + fi + fi + +done