aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/uzbl-browser
diff options
context:
space:
mode:
Diffstat (limited to 'src/uzbl-browser')
-rwxr-xr-xsrc/uzbl-browser90
1 files changed, 52 insertions, 38 deletions
diff --git a/src/uzbl-browser b/src/uzbl-browser
index de4f7af..88d3742 100755
--- a/src/uzbl-browser
+++ b/src/uzbl-browser
@@ -1,66 +1,80 @@
#!/bin/sh
-# this script implements a more useful out-of-the-box "browsing experience".
-# it does so by combining uzbl-core with a set of "recommended" tools and practices.
-# see docs for more info
-# If you want to customize the behavior of the cookie-daemon or similar helper tools,
-# copy them to your $XDG_DATA_HOME/uzbl/scripts/, edit them and update $PATH
-
-# Also, we assume existence of fifo/socket == correctly functioning cookie_daemon/event_manager.
-# Checking correct functioning of the daemons here would be too complex here, and it's not implemented in uzbl-core either.
-# But this shouldn't cause much problems..
+#
+# This script implements a more useful out-of-the-box "browsing experience".
+# It does so by combining uzbl-core with a set of "recommended" tools and
+# practices. See docs for more info.
+#
+# If you want to customize the behavior any of the helper tools, copy them
+# to your $XDG_DATA_HOME/uzbl/scripts/ and edit them
PREFIX=/usr/local
-if [ -z "$XDG_DATA_HOME" ]
-then
- export XDG_DATA_HOME=$HOME/.local/share
-fi
+EXAMPLES=$PREFIX/share/uzbl/examples
-if [ -z "$XDG_CACHE_HOME" ]
-then
- export XDG_CACHE_HOME=$HOME/.cache
-fi
+XDG_DATA_HOME=${XDG_DATA_HOME:-$HOME/.local/share}
+export XDG_DATA_HOME
-if [ -z "$XDG_CONFIG_HOME" ]
-then
- export XDG_CONFIG_HOME=$HOME/.config
-fi
+XDG_CACHE_HOME=${XDG_CACHE_HOME:-$HOME/.cache}
+export XDG_CACHE_HOME
+
+XDG_CONFIG_HOME=${XDG_CONFIG_HOME:-$HOME/.config}
+export XDG_CONFIG_HOME
# assure the relevant directories exist.
-for dir in $XDG_CACHE_HOME/uzbl $XDG_DATA_HOME/uzbl $XDG_CONFIG_HOME/uzbl
+for dir in "$XDG_CACHE_HOME"/uzbl "$XDG_DATA_HOME"/uzbl "$XDG_CONFIG_HOME"/uzbl
do
- if [ ! -d $dir ]
+ if [ ! -d "$dir" ]
then
- if ! mkdir -p $dir
+ if ! mkdir -p "$dir"
then
echo "could not create $dir" >&2
exit 2
fi
fi
done
+
# if no config exists yet in the recommended location, put the default (recommended) config there
-if [ ! -f $XDG_CONFIG_HOME/uzbl/config ]
+if [ ! -f "$XDG_CONFIG_HOME"/uzbl/config ]
then
- if ! cp $PREFIX/share/uzbl/examples/config/config $XDG_CONFIG_HOME/uzbl/config
+ if [ ! -r "$EXAMPLES"/config/config ]
then
- echo "Could not copy default config to $XDG_CONFIG_HOME/uzbl/config" >&2
+ echo "Error: Global config not found; please check if your distribution ships them separately"
exit 3
fi
+ if ! cp "$EXAMPLES"/config/config "$XDG_CONFIG_HOME"/uzbl/config
+ then
+ echo "Could not copy default config to $XDG_CONFIG_HOME/uzbl/config" >&2
+ # Run with the global config as a last resort
+ config_file=$EXAMPLES/config/config
+ fi
+fi
+
+# this variable is used by the default helper scripts as a location to
+# load shared code from
+if [ -z "$UZBL_UTIL_DIR" ]
+then
+ if [ -d "$XDG_DATA_HOME"/uzbl/scripts/util ]
+ then
+ UZBL_UTIL_DIR=$XDG_DATA_HOME/uzbl/scripts/util
+ elif [ -d $EXAMPLES/data/scripts/util ]
+ then
+ UZBL_UTIL_DIR=$EXAMPLES/data/scripts/util
+ fi
+ export UZBL_UTIL_DIR
fi
-# Uncomment this for a slight speedup at the expense of not having
-# stale cookie daemon sockets cleaned up.
-#if [ ! -S $XDG_CACHE_HOME/uzbl/cookie_daemon_socket ]
+# uzbl-cookie-manager will exit if another instance is already running.
+# we could also check if its pid file exists to avoid having to spawn it.
+#if [ ! -f "$XDG_CACHE_HOME"/uzbl/cookie_daemon_socket.pid ]
#then
- # if you want to customize it, copy to your $XDG_DATA_HOME/uzbl/scripts/ and update $PATH
- uzbl-cookie-daemon -v start
+ ${UZBL_COOKIE_DAEMON:-uzbl-cookie-manager}
#fi
-DAEMON_SOCKET=$XDG_CACHE_HOME/uzbl/event_daemon
-DAEMON_PID=${DAEMON_SOCKET}.pid
-
-#if [ -f "$DAEMON_PID" ]
+# uzbl-event-manager will exit if one is already running.
+# we could also check if its pid file exists to avoid having to spawn it.
+DAEMON_SOCKET="$XDG_CACHE_HOME"/uzbl/event_daemon
+#if [ ! -f "$DAEMON_SOCKET".pid ]
#then
- uzbl-event-manager -va start
+ ${UZBL_EVENT_MANAGER:-uzbl-event-manager -va start}
#fi
-exec uzbl-core "$@" --connect-socket $DAEMON_SOCKET
+exec uzbl-core "$@" ${config_file:+--config "$config_file"} --connect-socket $DAEMON_SOCKET