Fix argument parsing. Add -n allowing new profile

This commit is contained in:
Ceda EI 2020-10-21 19:00:56 +05:30
parent 1bba1e2061
commit a82dd2a1c0
1 changed files with 54 additions and 24 deletions

View File

@ -3,27 +3,33 @@
set -euo pipefail set -euo pipefail
if pidof firefox &> /dev/null; then
echo "It is recommended to close firefox before running this script."
echo -n "Do you want to run the script anyways? (y/N): "
read -r input
if [[ ${input^^} != "Y" ]]; then
exit 2
fi
fi
REPO_DIR="$(dirname "$0")" REPO_DIR="$(dirname "$0")"
BIN_DIR="$REPO_DIR/bin" BIN_DIR="$REPO_DIR/bin"
ICON_DIR="$REPO_DIR/icon" ICON_DIR="$REPO_DIR/icon"
FIRST_LAUNCH="https://gitlab.com/ceda_ei/firefox-web-apps/-/wikis/Getting-Started"
HELP_TEXT="
Usage:
$0 [-f|--firefox-profile] <firefox_profile> [-n|--new] <profile_name> [-h|--help]
Configure a firefox profile for web apps.
Options:
-f, --firefox-profile Path to an existing firefox profile (unless -n is
<firefox_profile> also provided)
-n, --new <profile_name> Creates a new profile with the given name. -f
configures the new profile path when passed along
with -n
-h, --help This help page
"
[[ -d $BIN_DIR ]] || mkdir -- "$BIN_DIR" [[ -d $BIN_DIR ]] || mkdir -- "$BIN_DIR"
[[ -d $ICON_DIR ]] || mkdir -- "$ICON_DIR" [[ -d $ICON_DIR ]] || mkdir -- "$ICON_DIR"
FIREFOX_PROFILE="" FIREFOX_PROFILE=""
OPTIONS=f PROFILE_NAME="firefox-web-apps"
LONGOPTS=firefox-profile NEW=0
OPTIONS=f:n:h
LONGOPTS=firefox-profile:,new:,help
PARSED=$(getopt --options=$OPTIONS --longoptions=$LONGOPTS --name "$0" -- "$@") PARSED=$(getopt --options=$OPTIONS --longoptions=$LONGOPTS --name "$0" -- "$@")
eval set -- "$PARSED" eval set -- "$PARSED"
@ -32,8 +38,18 @@ while true; do
-f|--firefox-profile) -f|--firefox-profile)
shift shift
FIREFOX_PROFILE="$1" FIREFOX_PROFILE="$1"
shift
;;
-n|--new)
NEW=1
shift
PROFILE_NAME="$1"
shift
;;
-h|--help)
echo "$HELP_TEXT"
exit
;; ;;
--) --)
break break
;; ;;
@ -43,16 +59,30 @@ while true; do
esac esac
done done
# Check if firefox is running
# Prompt to create Firefox profile if pidof firefox &> /dev/null; then
if [[ $FIREFOX_PROFILE == "" ]]; then echo "It is recommended to close firefox before running this script."
echo -n "Use an existing profile for apps? (y/N): " echo -n "Do you want to run the script anyways? (y/N): "
read -r input read -r input
if [[ ${input^^} == "Y" ]]; then if [[ ${input^^} != "Y" ]]; then
echo "Enter path to existing profile (or run the script with --firefox_profile): " exit 2
read -r FIREFOX_PROFILE fi
else fi
FIREFOX_PROFILE="$HOME/.mozilla/firefox/firefox-web-apps"
firefox -CreateProfile "firefox-web-apps ${FIREFOX_PROFILE}" # Prompt to create Firefox profile
if [[ $FIREFOX_PROFILE == "" ]] || (( NEW == 1 )); then
if (( NEW == 0 )); then
echo -n "Use an existing profile for apps? (y/N): "
read -r input
if [[ ${input^^} == "Y" ]]; then
echo "Enter path to existing profile (or run the script with --firefox_profile): "
read -r FIREFOX_PROFILE
else
NEW=1
fi
fi
if (( NEW == 1 )); then
FIREFOX_PROFILE="${FIREFOX_PROFILE:-$HOME/.mozilla/firefox/${PROFILE_NAME}}"
firefox -CreateProfile "${PROFILE_NAME} ${FIREFOX_PROFILE}"
fi fi
fi fi