mirror of
https://github.com/arkenfox/user.js.git
synced 2025-09-01 01:18:30 +02:00
Compare commits
73 Commits
Author | SHA1 | Date | |
---|---|---|---|
4d78abf2bf | |||
6151d664ac | |||
47f152ac90 | |||
84d515abfc | |||
c34531b67e | |||
04e6e77439 | |||
bc5add9450 | |||
b117916207 | |||
2f4b93a18f | |||
d50c772d7d | |||
7a1d0a92af | |||
f2e4a79ca0 | |||
c84c419544 | |||
bdaa2867b9 | |||
e2e8c4ea8f | |||
d13f39d9f9 | |||
ca022d8c2d | |||
7388485063 | |||
8259191167 | |||
b99dd27de8 | |||
62a68f0814 | |||
be376afc1e | |||
f5e54b4a70 | |||
7135907b2f | |||
12ca83b550 | |||
e4a85c30c1 | |||
45d23f8d75 | |||
40e8e1acbe | |||
6789dc7fef | |||
5eaa8196e2 | |||
cc0f05388f | |||
5a366493e0 | |||
365e76bc9f | |||
a93047e6c9 | |||
8a65c5a7ba | |||
60dd839081 | |||
f4187632fa | |||
51f3fdbd87 | |||
db04bc44f2 | |||
4e3a64b5a1 | |||
958acf9c2e | |||
95ecd3e328 | |||
4bc98005ec | |||
3f09afdee0 | |||
3c73bc1e56 | |||
e38f02bc22 | |||
74be763f60 | |||
5780b6d197 | |||
06bfef8fd1 | |||
d040b95ed2 | |||
61f01f81fd | |||
2b2e151f45 | |||
ff8d63f7e4 | |||
848290898d | |||
05abe82136 | |||
0dba33688f | |||
6e53e841f7 | |||
ecb63e82c9 | |||
ded7c01a08 | |||
996881aef1 | |||
4b4248157a | |||
a5e75c4bd3 | |||
c6ab6c4b48 | |||
ceacc9dd74 | |||
d466cf694e | |||
3fcc711c5a | |||
c21b9faefc | |||
1a899966a9 | |||
36c942e887 | |||
662eddbc21 | |||
ea139e3ef8 | |||
d6b26e7558 | |||
7ff46e02dd |
@ -7,7 +7,7 @@ A `user.js` is a configuration file that can control Firefox settings - for a mo
|
|||||||
|
|
||||||
The `arkenfox user.js` is a **template** which aims to provide as much privacy and enhanced security as possible, and to reduce tracking and fingerprinting as much as possible - while minimizing any loss of functionality and breakage (but it will happen).
|
The `arkenfox user.js` is a **template** which aims to provide as much privacy and enhanced security as possible, and to reduce tracking and fingerprinting as much as possible - while minimizing any loss of functionality and breakage (but it will happen).
|
||||||
|
|
||||||
Everyone, experts included, should at least read the [wiki](https://github.com/arkenfox/user.js/wiki), as it contains important information regarding a few `user.js` settings.
|
Everyone, experts included, should at least read the [wiki](https://github.com/arkenfox/user.js/wiki), as it contains important information regarding a few `user.js` settings. There is also an [interactive current release](https://arkenfox.github.io/gui/), thanks to [icpantsparti2](https://github.com/icpantsparti2).
|
||||||
|
|
||||||
Note that we do *not* recommend connecting over Tor on Firefox. Use the [Tor Browser](https://www.torproject.org/projects/torbrowser.html.en) if your [threat model](https://2019.www.torproject.org/about/torusers.html) calls for it, or for accessing hidden services.
|
Note that we do *not* recommend connecting over Tor on Firefox. Use the [Tor Browser](https://www.torproject.org/projects/torbrowser.html.en) if your [threat model](https://2019.www.torproject.org/about/torusers.html) calls for it, or for accessing hidden services.
|
||||||
|
|
||||||
|
@ -3,17 +3,19 @@ TITLE prefs.js cleaner
|
|||||||
|
|
||||||
REM ### prefs.js cleaner for Windows
|
REM ### prefs.js cleaner for Windows
|
||||||
REM ## author: @claustromaniac
|
REM ## author: @claustromaniac
|
||||||
REM ## version: 2.4
|
REM ## version: 2.7
|
||||||
|
|
||||||
CD /D "%~dp0"
|
CD /D "%~dp0"
|
||||||
|
|
||||||
|
IF /I "%~1"=="-unattended" (SET _ua=1)
|
||||||
|
|
||||||
:begin
|
:begin
|
||||||
ECHO:
|
ECHO:
|
||||||
ECHO:
|
ECHO:
|
||||||
ECHO ########################################
|
ECHO ########################################
|
||||||
ECHO #### prefs.js cleaner for Windows ####
|
ECHO #### prefs.js cleaner for Windows ####
|
||||||
ECHO #### by claustromaniac ####
|
ECHO #### by claustromaniac ####
|
||||||
ECHO #### v2.4 ####
|
ECHO #### v2.7 ####
|
||||||
ECHO ########################################
|
ECHO ########################################
|
||||||
ECHO:
|
ECHO:
|
||||||
CALL :message "This script should be run from your Firefox profile directory."
|
CALL :message "This script should be run from your Firefox profile directory."
|
||||||
@ -22,17 +24,22 @@ CALL :message "This will allow inactive preferences to be reset to their default
|
|||||||
ECHO This Firefox profile shouldn't be in use during the process.
|
ECHO This Firefox profile shouldn't be in use during the process.
|
||||||
CALL :message ""
|
CALL :message ""
|
||||||
TIMEOUT 1 /nobreak >nul
|
TIMEOUT 1 /nobreak >nul
|
||||||
CHOICE /C SHE /N /M "Start [S] Help [H] Exit [E]"
|
|
||||||
CLS
|
IF NOT DEFINED _ua (
|
||||||
IF ERRORLEVEL 3 (EXIT /B)
|
CHOICE /C SHE /N /M "Start [S] Help [H] Exit [E]"
|
||||||
IF ERRORLEVEL 2 (GOTO :showhelp)
|
CLS
|
||||||
|
IF ERRORLEVEL 3 (EXIT /B)
|
||||||
|
IF ERRORLEVEL 2 (GOTO :showhelp)
|
||||||
|
)
|
||||||
IF NOT EXIST "user.js" (CALL :abort "user.js not found in the current directory." 30)
|
IF NOT EXIST "user.js" (CALL :abort "user.js not found in the current directory." 30)
|
||||||
IF NOT EXIST "prefs.js" (CALL :abort "prefs.js not found in the current directory." 30)
|
IF NOT EXIST "prefs.js" (CALL :abort "prefs.js not found in the current directory." 30)
|
||||||
CALL :strlenCheck
|
CALL :strlenCheck
|
||||||
CALL :FFcheck
|
CALL :FFcheck
|
||||||
|
|
||||||
CALL :message "Backing up prefs.js..."
|
CALL :message "Backing up prefs.js..."
|
||||||
SET "_time=%time: =0%"
|
FOR /F "delims=" %%# IN ('powershell get-date -format "{yyyyMMdd_HHmmss}"') DO @SET ldt=%%#
|
||||||
COPY /B /V /Y prefs.js "prefs-backup-%date:/=-%_%_time::=.%.js"
|
COPY /B /V /Y prefs.js "prefs-backup-%ldt%.js"
|
||||||
|
|
||||||
CALL :message "Cleaning prefs.js..."
|
CALL :message "Cleaning prefs.js..."
|
||||||
CALL :cleanup
|
CALL :cleanup
|
||||||
CALL :message "All done!"
|
CALL :message "All done!"
|
||||||
|
@ -2,33 +2,65 @@
|
|||||||
|
|
||||||
## prefs.js cleaner for Linux/Mac
|
## prefs.js cleaner for Linux/Mac
|
||||||
## author: @claustromaniac
|
## author: @claustromaniac
|
||||||
## version: 1.4
|
## version: 1.9
|
||||||
|
|
||||||
## special thanks to @overdodactyl and @earthlng for a few snippets that I stol..*cough* borrowed from the updater.sh
|
## special thanks to @overdodactyl and @earthlng for a few snippets that I stol..*cough* borrowed from the updater.sh
|
||||||
|
|
||||||
currdir=$(pwd)
|
## DON'T GO HIGHER THAN VERSION x.9 !! ( because of ASCII comparison in update_prefsCleaner() )
|
||||||
|
|
||||||
|
# Check if running as root and if any files have the owner/group as root/wheel.
|
||||||
|
if [ "${EUID:-"$(id -u)"}" -eq 0 ]; then
|
||||||
|
printf "You shouldn't run this with elevated privileges (such as with doas/sudo).\n"
|
||||||
|
exit 1
|
||||||
|
elif [ -n "$(find ./ -user 0 -o -group 0)" ]; then
|
||||||
|
printf 'It looks like this script was previously run with elevated privileges,
|
||||||
|
you will need to change ownership of the following files to your user:\n'
|
||||||
|
find . -user 0 -o -group 0
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
readonly CURRDIR=$(pwd)
|
||||||
|
|
||||||
## get the full path of this script (readlink for Linux, greadlink for Mac with coreutils installed)
|
## 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)
|
SCRIPT_FILE=$(readlink -f "${BASH_SOURCE[0]}" 2>/dev/null || greadlink -f "${BASH_SOURCE[0]}" 2>/dev/null)
|
||||||
|
|
||||||
## fallback for Macs without coreutils
|
## fallback for Macs without coreutils
|
||||||
if [ -z "$sfp" ]; then sfp=${BASH_SOURCE[0]}; fi
|
[ -z "$SCRIPT_FILE" ] && SCRIPT_FILE=${BASH_SOURCE[0]}
|
||||||
|
|
||||||
## change directory to the Firefox profile directory
|
|
||||||
cd "$(dirname "${sfp}")"
|
AUTOUPDATE=true
|
||||||
|
QUICKSTART=false
|
||||||
|
|
||||||
|
## download method priority: curl -> wget
|
||||||
|
DOWNLOAD_METHOD=''
|
||||||
|
if command -v curl >/dev/null; then
|
||||||
|
DOWNLOAD_METHOD='curl --max-redirs 3 -so'
|
||||||
|
elif command -v wget >/dev/null; then
|
||||||
|
DOWNLOAD_METHOD='wget --max-redirect 3 --quiet -O'
|
||||||
|
else
|
||||||
|
AUTOUPDATE=false
|
||||||
|
echo -e "No curl or wget detected.\nAutomatic self-update disabled!"
|
||||||
|
fi
|
||||||
|
|
||||||
fQuit() {
|
fQuit() {
|
||||||
## change directory back to the original working directory
|
## change directory back to the original working directory
|
||||||
cd "${currdir}"
|
cd "${CURRDIR}"
|
||||||
[ "$1" -eq 0 ] && echo -e "\n$2" || echo -e "\n$2" >&2
|
[ "$1" -eq 0 ] && echo -e "\n$2" || echo -e "\n$2" >&2
|
||||||
exit $1
|
exit $1
|
||||||
}
|
}
|
||||||
|
|
||||||
fUsage() {
|
fUsage() {
|
||||||
echo -e "\nUsage: $0 [-s]"
|
echo -e "\nUsage: $0 [-ds]"
|
||||||
echo -e "
|
echo -e "
|
||||||
Optional Arguments:
|
Optional Arguments:
|
||||||
-s Start immediately"
|
-s Start immediately
|
||||||
|
-d Don't auto-update prefsCleaner.sh"
|
||||||
|
}
|
||||||
|
|
||||||
|
download_file() { # expects URL as argument ($1)
|
||||||
|
declare -r tf=$(mktemp)
|
||||||
|
|
||||||
|
$DOWNLOAD_METHOD "${tf}" "$1" &>/dev/null && echo "$tf" || echo '' # return the temp-filename or empty string on error
|
||||||
}
|
}
|
||||||
|
|
||||||
fFF_check() {
|
fFF_check() {
|
||||||
@ -40,6 +72,24 @@ fFF_check() {
|
|||||||
done
|
done
|
||||||
}
|
}
|
||||||
|
|
||||||
|
## returns the version number of a prefsCleaner.sh file
|
||||||
|
get_prefsCleaner_version() {
|
||||||
|
echo "$(sed -n '5 s/.*[[:blank:]]\([[:digit:]]*\.[[:digit:]]*\)/\1/p' "$1")"
|
||||||
|
}
|
||||||
|
|
||||||
|
## updates the prefsCleaner.sh file based on the latest public version
|
||||||
|
update_prefsCleaner() {
|
||||||
|
declare -r tmpfile="$(download_file 'https://raw.githubusercontent.com/arkenfox/user.js/master/prefsCleaner.sh')"
|
||||||
|
[ -z "$tmpfile" ] && echo -e "Error! Could not download prefsCleaner.sh" && return 1 # check if download failed
|
||||||
|
|
||||||
|
[[ $(get_prefsCleaner_version "$SCRIPT_FILE") == $(get_prefsCleaner_version "$tmpfile") ]] && return 0
|
||||||
|
|
||||||
|
mv "$tmpfile" "$SCRIPT_FILE"
|
||||||
|
chmod u+x "$SCRIPT_FILE"
|
||||||
|
"$SCRIPT_FILE" "$@" -d
|
||||||
|
exit 0
|
||||||
|
}
|
||||||
|
|
||||||
fClean() {
|
fClean() {
|
||||||
# the magic happens here
|
# the magic happens here
|
||||||
prefs="@@"
|
prefs="@@"
|
||||||
@ -69,7 +119,8 @@ fStart() {
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
fFF_check
|
fFF_check
|
||||||
bakfile="prefs.js.backup.$(date +"%Y-%m-%d_%H%M")"
|
mkdir -p prefsjs_backups
|
||||||
|
bakfile="prefsjs_backups/prefs.js.backup.$(date +"%Y-%m-%d_%H%M")"
|
||||||
mv prefs.js "${bakfile}" || fQuit 1 "Operation aborted.\nReason: Could not create backup file $bakfile"
|
mv prefs.js "${bakfile}" || fQuit 1 "Operation aborted.\nReason: Could not create backup file $bakfile"
|
||||||
echo -e "\nprefs.js backed up: $bakfile"
|
echo -e "\nprefs.js backed up: $bakfile"
|
||||||
echo "Cleaning prefs.js..."
|
echo "Cleaning prefs.js..."
|
||||||
@ -77,18 +128,37 @@ fStart() {
|
|||||||
fQuit 0 "All done!"
|
fQuit 0 "All done!"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
while getopts "sd" opt; do
|
||||||
|
case $opt in
|
||||||
|
s)
|
||||||
|
QUICKSTART=true
|
||||||
|
;;
|
||||||
|
d)
|
||||||
|
AUTOUPDATE=false
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
done
|
||||||
|
|
||||||
|
## change directory to the Firefox profile directory
|
||||||
|
cd "$(dirname "${SCRIPT_FILE}")"
|
||||||
|
|
||||||
|
[ "$AUTOUPDATE" = true ] && update_prefsCleaner "$@"
|
||||||
|
|
||||||
echo -e "\n\n"
|
echo -e "\n\n"
|
||||||
echo " ╔══════════════════════════╗"
|
echo " ╔══════════════════════════╗"
|
||||||
echo " ║ prefs.js cleaner ║"
|
echo " ║ prefs.js cleaner ║"
|
||||||
echo " ║ by claustromaniac ║"
|
echo " ║ by claustromaniac ║"
|
||||||
echo " ║ v1.4 ║"
|
echo " ║ v1.9 ║"
|
||||||
echo " ╚══════════════════════════╝"
|
echo " ╚══════════════════════════╝"
|
||||||
echo -e "\nThis script should be run from your Firefox profile directory.\n"
|
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 "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 "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"
|
echo -e "\nThis Firefox profile shouldn't be in use during the process.\n"
|
||||||
|
|
||||||
[ "$1" == '-s' ] && fStart
|
[ "$QUICKSTART" = true ] && fStart
|
||||||
|
|
||||||
|
echo -e "\nIn order to proceed, select a command below by entering its corresponding number.\n"
|
||||||
|
|
||||||
select option in Start Help Exit; do
|
select option in Start Help Exit; do
|
||||||
case $option in
|
case $option in
|
||||||
@ -112,3 +182,5 @@ select option in Start Help Exit; do
|
|||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
done
|
done
|
||||||
|
|
||||||
|
fQuit 0
|
||||||
|
@ -3,7 +3,7 @@
|
|||||||
- removed from the arkenfox user.js
|
- removed from the arkenfox user.js
|
||||||
- deprecated by Mozilla but listed in the arkenfox user.js in the past
|
- deprecated by Mozilla but listed in the arkenfox user.js in the past
|
||||||
|
|
||||||
Last updated: 8-April-2022
|
Last updated: 20-July-2023
|
||||||
|
|
||||||
Instructions:
|
Instructions:
|
||||||
- [optional] close Firefox and backup your profile
|
- [optional] close Firefox and backup your profile
|
||||||
@ -32,13 +32,27 @@
|
|||||||
|
|
||||||
const aPREFS = [
|
const aPREFS = [
|
||||||
/* DEPRECATED */
|
/* DEPRECATED */
|
||||||
/* FF92+ */
|
/* 103-115 */
|
||||||
|
'browser.cache.offline.enable', // 115
|
||||||
|
'extensions.formautofill.heuristics.enabled', // 114
|
||||||
|
'network.cookie.lifetimePolicy', // 103 [technically removed in 104]
|
||||||
|
'privacy.clearsitedata.cache.enabled', // 114
|
||||||
|
'privacy.resistFingerprinting.testGranularityMask', // 114
|
||||||
|
'security.pki.sha1_enforcement_level', // 103
|
||||||
|
/* 92-102 */
|
||||||
'browser.urlbar.suggest.quicksuggest', // 95
|
'browser.urlbar.suggest.quicksuggest', // 95
|
||||||
'dom.securecontext.whitelist_onions', // 97
|
'dom.securecontext.whitelist_onions', // 97
|
||||||
|
'dom.storage.next_gen', // 102
|
||||||
|
'network.http.spdy.enabled', // 100
|
||||||
|
'network.http.spdy.enabled.deps',
|
||||||
|
'network.http.spdy.enabled.http2',
|
||||||
|
'network.http.spdy.websockets',
|
||||||
'layout.css.font-visibility.level', // 94
|
'layout.css.font-visibility.level', // 94
|
||||||
|
'security.ask_for_password', // 102
|
||||||
'security.csp.enable', // 99
|
'security.csp.enable', // 99
|
||||||
|
'security.password_lifetime', // 102
|
||||||
'security.ssl3.rsa_des_ede3_sha', // 93
|
'security.ssl3.rsa_des_ede3_sha', // 93
|
||||||
/* FF79-91 */
|
/* 79-91 */
|
||||||
'browser.cache.offline.storage.enable',
|
'browser.cache.offline.storage.enable',
|
||||||
'browser.download.hide_plugins_without_extensions',
|
'browser.download.hide_plugins_without_extensions',
|
||||||
'browser.library.activity-stream.enabled',
|
'browser.library.activity-stream.enabled',
|
||||||
@ -227,13 +241,40 @@
|
|||||||
'toolkit.telemetry.unifiedIsOptIn',
|
'toolkit.telemetry.unifiedIsOptIn',
|
||||||
|
|
||||||
/* REMOVED */
|
/* REMOVED */
|
||||||
/* 92+ */
|
/* 103-115 */
|
||||||
|
'beacon.enabled',
|
||||||
|
'browser.startup.blankWindow',
|
||||||
|
'browser.newtab.preload',
|
||||||
|
'browser.newtabpage.activity-stream.feeds.discoverystreamfeed',
|
||||||
|
'browser.newtabpage.activity-stream.feeds.snippets',
|
||||||
|
'browser.region.network.url',
|
||||||
|
'browser.region.update.enabled',
|
||||||
|
'browser.search.region',
|
||||||
|
'browser.ssl_override_behavior',
|
||||||
|
'browser.tabs.warnOnClose',
|
||||||
|
'devtools.chrome.enabled',
|
||||||
|
'dom.disable_beforeunload',
|
||||||
|
'dom.disable_open_during_load',
|
||||||
|
'dom.netinfo.enabled',
|
||||||
|
'dom.vr.enabled',
|
||||||
|
'extensions.formautofill.addresses.supported',
|
||||||
|
'extensions.formautofill.available',
|
||||||
|
'extensions.formautofill.creditCards.available',
|
||||||
|
'extensions.formautofill.creditCards.supported',
|
||||||
|
'middlemouse.contentLoadURL',
|
||||||
|
'network.http.altsvc.oe',
|
||||||
|
/* 92-102 */
|
||||||
|
'browser.urlbar.trimURLs',
|
||||||
'dom.caches.enabled',
|
'dom.caches.enabled',
|
||||||
'dom.storageManager.enabled',
|
'dom.storageManager.enabled',
|
||||||
'dom.storage_access.enabled',
|
'dom.storage_access.enabled',
|
||||||
|
'dom.targetBlankNoOpener.enabled',
|
||||||
|
'network.cookie.thirdparty.sessionOnly',
|
||||||
|
'network.cookie.thirdparty.nonsecureSessionOnly',
|
||||||
'privacy.firstparty.isolate.block_post_message',
|
'privacy.firstparty.isolate.block_post_message',
|
||||||
'privacy.firstparty.isolate.restrict_opener_access',
|
'privacy.firstparty.isolate.restrict_opener_access',
|
||||||
'privacy.firstparty.isolate.use_site',
|
'privacy.firstparty.isolate.use_site',
|
||||||
|
'privacy.window.name.update.enabled',
|
||||||
'security.insecure_connection_text.enabled',
|
'security.insecure_connection_text.enabled',
|
||||||
/* 79-91 */
|
/* 79-91 */
|
||||||
'alerts.showFavicons',
|
'alerts.showFavicons',
|
||||||
|
@ -3,10 +3,10 @@ TITLE arkenfox user.js updater
|
|||||||
|
|
||||||
REM ## arkenfox user.js updater for Windows
|
REM ## arkenfox user.js updater for Windows
|
||||||
REM ## author: @claustromaniac
|
REM ## author: @claustromaniac
|
||||||
REM ## version: 4.16
|
REM ## version: 4.19
|
||||||
REM ## instructions: https://github.com/arkenfox/user.js/wiki/5.1-Updater-[Options]#-windows
|
REM ## instructions: https://github.com/arkenfox/user.js/wiki/5.1-Updater-[Options]#-windows
|
||||||
|
|
||||||
SET v=4.15
|
SET v=4.19
|
||||||
|
|
||||||
VERIFY ON
|
VERIFY ON
|
||||||
CD /D "%~dp0"
|
CD /D "%~dp0"
|
||||||
@ -177,8 +177,8 @@ IF EXIST user.js.new (
|
|||||||
IF DEFINED _singlebackup (
|
IF DEFINED _singlebackup (
|
||||||
MOVE /Y user.js user.js.bak >nul
|
MOVE /Y user.js user.js.bak >nul
|
||||||
) ELSE (
|
) ELSE (
|
||||||
SET "_time=!time: =0!"
|
FOR /F "delims=" %%# IN ('powershell get-date -format "{yyyyMMdd_HHmmss}"') DO @SET ldt=%%#
|
||||||
MOVE /Y user.js "user-backup-!date:/=-!_!_time::=.!.js" >nul
|
MOVE /Y user.js "user-backup-!ldt!.js" >nul
|
||||||
)
|
)
|
||||||
REN user.js.new user.js
|
REN user.js.new user.js
|
||||||
CALL :message "Update complete."
|
CALL :message "Update complete."
|
||||||
|
29
updater.sh
29
updater.sh
@ -2,12 +2,18 @@
|
|||||||
|
|
||||||
## arkenfox user.js updater for macOS and Linux
|
## arkenfox user.js updater for macOS and Linux
|
||||||
|
|
||||||
## version: 3.4
|
## version: 3.9
|
||||||
## Author: Pat Johnson (@overdodactyl)
|
## Author: Pat Johnson (@overdodactyl)
|
||||||
## Additional contributors: @earthlng, @ema-pe, @claustromaniac
|
## Additional contributors: @earthlng, @ema-pe, @claustromaniac, @infinitewarp
|
||||||
|
|
||||||
## DON'T GO HIGHER THAN VERSION x.9 !! ( because of ASCII comparison in update_updater() )
|
## DON'T GO HIGHER THAN VERSION x.9 !! ( because of ASCII comparison in update_updater() )
|
||||||
|
|
||||||
|
# Check if running as root
|
||||||
|
if [ "${EUID:-"$(id -u)"}" -eq 0 ]; then
|
||||||
|
printf "You shouldn't run this with elevated privileges (such as with doas/sudo).\n"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
readonly CURRDIR=$(pwd)
|
readonly CURRDIR=$(pwd)
|
||||||
|
|
||||||
SCRIPT_FILE=$(readlink -f "${BASH_SOURCE[0]}" 2>/dev/null || greadlink -f "${BASH_SOURCE[0]}" 2>/dev/null)
|
SCRIPT_FILE=$(readlink -f "${BASH_SOURCE[0]}" 2>/dev/null || greadlink -f "${BASH_SOURCE[0]}" 2>/dev/null)
|
||||||
@ -195,10 +201,10 @@ update_updater() {
|
|||||||
echo -e "There is a newer version of updater.sh available. ${RED}Update and execute Y/N?${NC}"
|
echo -e "There is a newer version of updater.sh available. ${RED}Update and execute Y/N?${NC}"
|
||||||
read -p "" -n 1 -r
|
read -p "" -n 1 -r
|
||||||
echo -e "\n\n"
|
echo -e "\n\n"
|
||||||
[[ $REPLY =~ ^[Nn]$ ]] && return 0 # Update available, but user chooses not to update
|
[[ $REPLY =~ ^[Yy]$ ]] || return 0 # Update available, but user chooses not to update
|
||||||
fi
|
fi
|
||||||
else
|
else
|
||||||
return 0 # No update available
|
return 0 # No update available
|
||||||
fi
|
fi
|
||||||
mv "${tmpfile}" "$SCRIPT_FILE"
|
mv "${tmpfile}" "$SCRIPT_FILE"
|
||||||
chmod u+x "$SCRIPT_FILE"
|
chmod u+x "$SCRIPT_FILE"
|
||||||
@ -253,7 +259,7 @@ update_userjs() {
|
|||||||
echo -e "This script will update to the latest user.js file and append any custom configurations from user-overrides.js. ${RED}Continue Y/N? ${NC}"
|
echo -e "This script will update to the latest user.js file and append any custom configurations from user-overrides.js. ${RED}Continue Y/N? ${NC}"
|
||||||
read -p "" -n 1 -r
|
read -p "" -n 1 -r
|
||||||
echo -e "\n"
|
echo -e "\n"
|
||||||
if [[ $REPLY =~ ^[Nn]$ ]]; then
|
if ! [[ $REPLY =~ ^[Yy]$ ]]; then
|
||||||
echo -e "${RED}Process aborted${NC}"
|
echo -e "${RED}Process aborted${NC}"
|
||||||
rm "$newfile"
|
rm "$newfile"
|
||||||
return 1
|
return 1
|
||||||
@ -385,6 +391,17 @@ show_banner
|
|||||||
update_updater "$@"
|
update_updater "$@"
|
||||||
|
|
||||||
getProfilePath # updates PROFILE_PATH or exits on error
|
getProfilePath # updates PROFILE_PATH or exits on error
|
||||||
cd "$PROFILE_PATH" && update_userjs
|
cd "$PROFILE_PATH" || exit 1
|
||||||
|
|
||||||
|
# Check if any files have the owner/group as root/wheel.
|
||||||
|
if [ -n "$(find ./ -user 0 -o -group 0)" ]; then
|
||||||
|
printf 'It looks like this script was previously run with elevated privileges,
|
||||||
|
you will need to change ownership of the following files to your user:\n'
|
||||||
|
find . -user 0 -o -group 0
|
||||||
|
cd "$CURRDIR"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
update_userjs
|
||||||
|
|
||||||
cd "$CURRDIR"
|
cd "$CURRDIR"
|
||||||
|
Reference in New Issue
Block a user