Merge pull request #276 from rivanfebrian123/master

READY: Critical update: correcting Firefox installation workflow
This commit is contained in:
Vince 2021-05-30 22:13:00 +08:00 committed by GitHub
commit 34d2805868
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 45 additions and 19 deletions

View File

@ -195,6 +195,10 @@ has_command() {
command -v "$1" &> /dev/null command -v "$1" &> /dev/null
} }
has_flatpak_app() {
flatpak list --columns=application 2> /dev/null | grep "${1}" &> /dev/null || return 1
}
is_my_distro() { is_my_distro() {
[[ "$(cat '/etc/os-release' | awk -F '=' '/ID/{print $2}')" =~ "${1}" ]] [[ "$(cat '/etc/os-release' | awk -F '=' '/ID/{print $2}')" =~ "${1}" ]]
} }
@ -253,6 +257,7 @@ check_param() {
local has_any_ambiguity_error="false" local has_any_ambiguity_error="false"
local variant_found="false" local variant_found="false"
if [[ "${has_set["${global_param}"]}" == "true" ]]; then if [[ "${has_set["${global_param}"]}" == "true" ]]; then
need_dialog["${global_param}"]="true" need_dialog["${global_param}"]="true"

View File

@ -433,19 +433,35 @@ revert_gdm_theme() {
############################################################################### ###############################################################################
install_firefox_theme() { install_firefox_theme() {
#TODO: add support for Snap
if has_flatpak_app org.mozilla.firefox; then
local TARGET_DIR="${FIREFOX_FLATPAK_THEME_DIR}"
else
local TARGET_DIR="${FIREFOX_THEME_DIR}"
fi
remove_firefox_theme remove_firefox_theme
[[ ! -d "${FIREFOX_THEME_DIR}" ]] && mkdir -p ${FIREFOX_THEME_DIR} userify mkdir -p "${TARGET_DIR}"
userify cp -rf "${FIREFOX_SRC_DIR}"/* "${FIREFOX_THEME_DIR}" userify cp -rf "${FIREFOX_SRC_DIR}"/* "${TARGET_DIR}"
config_firefox config_firefox
} }
config_firefox() { config_firefox() {
killall "firefox" &> /dev/null || true if has_flatpak_app org.mozilla.firefox; then
local TARGET_DIR="${FIREFOX_FLATPAK_THEME_DIR}"
local FIREFOX_DIR="${FIREFOX_FLATPAK_DIR_HOME}"
else
local TARGET_DIR="${FIREFOX_THEME_DIR}"
local FIREFOX_DIR="${FIREFOX_DIR_HOME}"
fi
for d in "${FIREFOX_DIR_HOME}/"*"default"*; do killall "firefox" "firefox-bin" &> /dev/null || true
for d in "${FIREFOX_DIR}/"*"default"*; do
if [[ -f "${d}/prefs.js" ]]; then if [[ -f "${d}/prefs.js" ]]; then
rm -rf "${d}/chrome" rm -rf "${d}/chrome"
userify ln -sf "${FIREFOX_THEME_DIR}" "${d}/chrome" userify ln -sf "${TARGET_DIR}" "${d}/chrome"
userify_file "${d}/prefs.js" userify_file "${d}/prefs.js"
echo "user_pref(\"toolkit.legacyUserProfileCustomizations.stylesheets\", true);" >> "${d}/prefs.js" echo "user_pref(\"toolkit.legacyUserProfileCustomizations.stylesheets\", true);" >> "${d}/prefs.js"
echo "user_pref(\"browser.tabs.drawInTitlebar\", true);" >> "${d}/prefs.js" echo "user_pref(\"browser.tabs.drawInTitlebar\", true);" >> "${d}/prefs.js"
@ -457,14 +473,25 @@ config_firefox() {
} }
edit_firefox_theme_prefs() { edit_firefox_theme_prefs() {
[[ ! -d "${FIREFOX_THEME_DIR}" ]] && install_firefox_theme ; config_firefox if has_flatpak_app org.mozilla.firefox; then
userify ${EDITOR:-nano} "${FIREFOX_THEME_DIR}/userChrome.css" local TARGET_DIR="${FIREFOX_FLATPAK_THEME_DIR}"
userify ${EDITOR:-nano} "${FIREFOX_THEME_DIR}/customChrome.css" else
local TARGET_DIR="${FIREFOX_THEME_DIR}"
fi
[[ ! -d "${TARGET_DIR}" ]] && install_firefox_theme ; config_firefox
userify ${EDITOR:-nano} "${TARGET_DIR}/userChrome.css"
userify ${EDITOR:-nano} "${TARGET_DIR}/customChrome.css"
} }
remove_firefox_theme() { remove_firefox_theme() {
# rm -rf "${FIREFOX_DIR_HOME}/"*"default"*"/chrome" # We need to remove this linked folder to avoid unwanted file overriding in
rm -rf "${FIREFOX_THEME_DIR}/WhiteSur" # the next installation
rm -rf "${FIREFOX_DIR_HOME}/"*"default"*"/chrome"
rm -rf "${FIREFOX_THEME_DIR}" # Sorry, we need to remove ".../WhiteSur" to keep anything clean
# This too
rm -rf "${FIREFOX_FLATPAK_DIR_HOME}/"*"default"*"/chrome"
rm -rf "${FIREFOX_FLATPAK_THEME_DIR}"
} }
############################################################################### ###############################################################################

View File

@ -67,20 +67,14 @@ while [[ $# -gt 0 ]]; do
edit_firefox="true" ;; edit_firefox="true" ;;
esac esac
if [[ -d "${FIREFOX_FLATPAK_DIR_HOME}" ]]; then if ! has_command firefox && ! has_flatpak_app org.mozilla.firefox; then
FIREFOX_DIR_HOME=${FIREFOX_FLATPAK_DIR_HOME}
[[ ! -d "${FIREFOX_FLATPAK_THEME_DIR}" ]] && mkdir -p ${FIREFOX_FLATPAK_THEME_DIR}
FIREFOX_THEME_DIR=${FIREFOX_FLATPAK_THEME_DIR}
fi;
if [[ ! -d "${FIREFOX_FLATPAK_DIR_HOME}" ]] && ! has_command firefox; then
prompt -e "'${1}' ERROR: There's no Firefox installed in your system" prompt -e "'${1}' ERROR: There's no Firefox installed in your system"
has_any_error="true" has_any_error="true"
elif [[ ! -d "${FIREFOX_DIR_HOME}" ]]; then elif [[ ! -d "${FIREFOX_DIR_HOME}" && ! -d "${FIREFOX_FLATPAK_DIR_HOME}" ]]; then
prompt -e "'${1}' ERROR: Firefox is installed but not yet initialized." prompt -e "'${1}' ERROR: Firefox is installed but not yet initialized."
prompt -w "'${1}': Don't forget to close it after you run/initialize it" prompt -w "'${1}': Don't forget to close it after you run/initialize it"
has_any_error="true" has_any_error="true"
elif pidof "firefox" &> /dev/null; then elif pidof "firefox" &> /dev/null || pidof "firefox-bin" &> /dev/null; then
prompt -e "'${1}' ERROR: Firefox is running, please close it" prompt -e "'${1}' ERROR: Firefox is running, please close it"
has_any_error="true" has_any_error="true"
fi; shift ;; fi; shift ;;