summaryrefslogtreecommitdiff
path: root/configure
diff options
context:
space:
mode:
Diffstat (limited to 'configure')
-rwxr-xr-xconfigure73
1 files changed, 62 insertions, 11 deletions
diff --git a/configure b/configure
index 06a43eb..bd7800f 100755
--- a/configure
+++ b/configure
@@ -18,16 +18,29 @@ set -e
BROWSERPATH=''
SRCDIR=''
TARGET=''
+BROWSER_BINARY=''
+CLEAN_PROFILE=''
+DRIVER=''
+PYTEST=''
# Parse command line options
while [ "x$1" != x ]; do
case "$1" in
- --srcdir=*) SRCDIR="$(echo "$1" | cut -c 10-)";;
- --srcdir) SRCDIR="$2"; shift;;
- "DESTDIR"=*) DESTDIR="$(echo "$1" | cut -c 9-)";;
- "UPDATE_URL"=*) UPDATE_URL="$(echo "$1" | cut -c 12-)";;
- --host=*) TARGET="$(echo "$1" | cut -c 8-)";;
- --host) TARGET="$2"; shift;;
+ --srcdir=*) SRCDIR="$(printf %s "$1" | cut -c 10-)";;
+ --srcdir) SRCDIR="$2"; shift;;
+ --browser-binary=*) BROWSER_BINARY="$(printf %s "$1" | cut -c 18-)";;
+ --browser-binary) BROWSER_BINARY="$2"; shift;;
+ --clean-profile=*) CLEAN_PROFILE="$(printf %s "$1" | cut -c 17-)";;
+ --clean-profile) CLEAN_PROFILE="$2"; shift;;
+ --driver=*) DRIVER="$(printf %s "$1" | cut -c 10-)";;
+ --driver) DRIVER="$2"; shift;;
+ --pytest=*) PYTEST="$(printf %s "$1" | cut -c 10-)";;
+ --pytest) PYTEST="$2"; shift;;
+ --srcdir) SRCDIR="$2"; shift;;
+ "DESTDIR"=*) DESTDIR="$(printf %s "$1" | cut -c 9-)";;
+ "UPDATE_URL"=*) UPDATE_URL="$(printf %s "$1" | cut -c 12-)";;
+ --host=*) TARGET="$(printf %s "$1" | cut -c 8-)";;
+ --host) TARGET="$2"; shift;;
# browsers
chromium | chrome | google-chrome | mozilla |\
@@ -70,6 +83,20 @@ else
BROWSERPATH="$(realpath "$(which $TARGET)")"
fi
+# Autodetect browser binary (needed for Selenium)
+if [ "x$BROWSER_BINARY" = x ]; then
+ if [ "x$TARGET" = xabrowser ]; then
+ # Trisquel's path to Abrowser
+ BROWSER_BINARY=/usr/lib/abrowser/abrowser
+ if [ "x$TARGET" = xabrowser ]; then
+ # Debian's path to Librewolf
+ BROWSER_BINARY=/usr/share/librewolf/librewolf
+ elif [ "x$TARGET" = xicecat ]; then
+ # Parabola's path to IceCat
+ BROWSER_BINARY=/usr/lib/icecat/icecat
+ fi
+fi
+
# Check and standardize target
case "$TARGET" in
mozilla | firefox | abrowser | icecat | iceweasel-uxp |\
@@ -79,6 +106,27 @@ case "$TARGET" in
*) echo Invalid target "'$TARGET'" >&2; exit 2;;
esac
+# Autodetect Selenium driver
+if [ "x$DRIVER" = x ]; then
+ if [ "x$TARGET" = mozilla ]; then
+ DRIVER=geckodriver
+ fi
+fi
+
+# Autodetect clean profile directory for use in selenium tests
+if [ "x$CLEAN_PROFILE" = x ]; then
+ if [ "x$TARGET" = mozilla ]; then
+ CLEAN_PROFILE="$SRCDIR"/test/default_profile/icecat_empty
+ fi
+fi
+
+# Autodetect pytest
+for PYTEST_GUESS in pytest pytest-3 pytest3; do
+ if [ "x$PYTEST" = x ]; then
+ PYTEST="$(which $PYTEST_GUESS || true)"
+ fi
+done
+
# Autodetect DESTDIR (no check needed)
if [ "x$DESTDIR" = x ]; then
echo Guessing installation directory.
@@ -95,11 +143,14 @@ if [ "x$DESTDIR" = x ]; then
fi
# Write record.conf (LEAVE SRCDIR FIRST)
-echo srcdir = "$SRCDIR" > record.conf
-echo default_target = "$TARGET" >> record.conf
-echo DESTDIR = "$DESTDIR" >> record.conf
-echo UPDATE_URL = "$UPDATE_URL" >> record.conf
-
+printf '%s\n' "srcdir = $SRCDIR" > record.conf
+printf '%s\n' "default_target = $TARGET" >> record.conf
+printf '%s\n' "DESTDIR = $DESTDIR" >> record.conf
+printf '%s\n' "UPDATE_URL = $UPDATE_URL" >> record.conf
+printf '%s\n' "DRIVER = $DRIVER" >> record.conf
+printf '%s\n' "BROWSER_BINARY = $BROWSER_BINARY" >> record.conf
+printf '%s\n' "CLEAN_PROFILE = $CLEAN_PROFILE" >> record.conf
+printf '%s\n' "PYTEST = $PYTEST" >> record.conf
# Prepare and run write_makefile.sh (as config.status)
if [ ! -e config.status ]; then