From 22a8ebefdb600df2d101224c8f873703485db2f9 Mon Sep 17 00:00:00 2001 From: claustromaniac <20734810+claustromaniac@users.noreply.github.com> Date: Mon, 23 Apr 2018 12:54:26 +0000 Subject: [PATCH] I'm actually more of a tabs guy --- prefsCleaner.sh | 130 ++++++++++++++++++++++++------------------------ 1 file changed, 64 insertions(+), 66 deletions(-) diff --git a/prefsCleaner.sh b/prefsCleaner.sh index e3c82f8..ace5baa 100644 --- a/prefsCleaner.sh +++ b/prefsCleaner.sh @@ -19,42 +19,41 @@ if [ -z "$sfp" ]; then sfp=${BASH_SOURCE[0]}; fi cd "$(dirname "${sfp}")" fQuit() { - ## change directory back to the original working directory - cd "${currdir}" - exit $1 + ## change directory back to the original working directory + cd "${currdir}" + exit $1 } fFF_check() { - # there are many ways to see if firefox is running or not, some more reliable than others - # this isn't elegant and might not be future-proof but should at least be compatible with any environment - while [ -e webappsstore.sqlite-shm ] - do - echo -e "\nThis Firefox profile seems to be in use. Close Firefox and try again.\n" - read -p "Press any key to continue." - done + # there are many ways to see if firefox is running or not, some more reliable than others + # this isn't elegant and might not be future-proof but should at least be compatible with any environment + while [ -e webappsstore.sqlite-shm ]; do + echo -e "\nThis Firefox profile seems to be in use. Close Firefox and try again.\n" + read -p "Press any key to continue." + done } fClean() { - # the magic happens here - prefs="@@" - prefexp="user_pref[ ]*\([ ]*[\"']([^\"']*)[\"'][ ]*," - while read -r line || [[ -n "$line" ]]; do - if [[ $line =~ $prefexp ]]; then - if [[ $prefs != *"@@${BASH_REMATCH[1]}@@"* ]]; then - prefs="${prefs}${BASH_REMATCH[1]}@@" - fi - fi - done <<< `grep -E "${prefexp}" user.js` + # the magic happens here + prefs="@@" + prefexp="user_pref[ ]*\([ ]*[\"']([^\"']*)[\"'][ ]*," + while read -r line || [[ -n "$line" ]]; do + if [[ $line =~ $prefexp ]]; then + if [[ $prefs != *"@@${BASH_REMATCH[1]}@@"* ]]; then + prefs="${prefs}${BASH_REMATCH[1]}@@" + fi + fi + done <<< `grep -E "${prefexp}" user.js` - while IFS='' read -r line || [[ -n "$line" ]]; do - if [[ $line =~ $prefexp ]]; then - if [[ $prefs != *"@@${BASH_REMATCH[1]}@@"* ]]; then - echo "$line" - fi - continue - fi - echo "$line" - done < "$1" > prefs.js + while IFS='' read -r line || [[ -n "$line" ]]; do + if [[ $line =~ $prefexp ]]; then + if [[ $prefs != *"@@${BASH_REMATCH[1]}@@"* ]]; then + echo "$line" + fi + continue + fi + echo "$line" + done < "$1" > prefs.js } echo -e "\n\n" @@ -67,41 +66,40 @@ echo -e "\nThis script should be run from your Firefox profile directory.\n" echo "It will remove any entries from prefs.js that also exist in user.js." echo "This will allow inactive preferences to be reset to their default values." echo -e "\nThis Firefox profile shouldn't be in use during the process.\n" -select option in Start Help Exit; -do - case $option in - Start) - if [ ! -e user.js ]; then - echo "user.js not found in the current directory." - fQuit 1 - elif [ ! -e prefs.js ]; then - echo "prefs.js not found in the current directory." - fQuit 1 - fi - - fFF_check - ## create backup folder if it doesn't exist - mkdir -p userjs_backups; - bakfile="userjs_backups/prefs.js.backup.$(date +"%Y-%m-%d_%H%M")" - mv prefs.js "${bakfile}" && echo -e "\nprefs.js backed up: $bakfile" - echo "Cleaning prefs.js..." - fClean "$bakfile" - echo "All done!" - fQuit 0 - ;; - Help) - echo -e "\nThis script creates a backup of your prefs.js file before doing anything." - echo -e "It should be safe, but you can follow these steps if something goes wrong:\n" - echo "1. Make sure Firefox is closed." - echo "2. Delete prefs.js in your profile folder." - echo "3. Delete Invalidprefs.js if you have one in the same folder." - echo "4. Rename or copy your latest backup to prefs.js." - echo "5. Run Firefox and see if you notice anything wrong with it." - echo "6. If you do notice something wrong, especially with your extensions, and/or with the UI, go to about:support, and restart Firefox with add-ons disabled. Then, restart it again normally, and see if the problems were solved." - echo -e "If you are able to identify the cause of your issues, please bring it up on ghacks-user.js GitHub repository.\n" - ;; - Exit) - fQuit 0 - ;; - esac +select option in Start Help Exit; do + case $option in + Start) + if [ ! -e user.js ]; then + echo "user.js not found in the current directory." + fQuit 1 + elif [ ! -e prefs.js ]; then + echo "prefs.js not found in the current directory." + fQuit 1 + fi + + fFF_check + ## create backup folder if it doesn't exist + mkdir -p userjs_backups; + bakfile="userjs_backups/prefs.js.backup.$(date +"%Y-%m-%d_%H%M")" + mv prefs.js "${bakfile}" && echo -e "\nprefs.js backed up: $bakfile" + echo "Cleaning prefs.js..." + fClean "$bakfile" + echo "All done!" + fQuit 0 + ;; + Help) + echo -e "\nThis script creates a backup of your prefs.js file before doing anything." + echo -e "It should be safe, but you can follow these steps if something goes wrong:\n" + echo "1. Make sure Firefox is closed." + echo "2. Delete prefs.js in your profile folder." + echo "3. Delete Invalidprefs.js if you have one in the same folder." + echo "4. Rename or copy your latest backup to prefs.js." + echo "5. Run Firefox and see if you notice anything wrong with it." + echo "6. If you do notice something wrong, especially with your extensions, and/or with the UI, go to about:support, and restart Firefox with add-ons disabled. Then, restart it again normally, and see if the problems were solved." + echo -e "If you are able to identify the cause of your issues, please bring it up on ghacks-user.js GitHub repository.\n" + ;; + Exit) + fQuit 0 + ;; + esac done