#!/bin/sh

if [ "$(id -u)" -eq 0 -o "$(id -ru)" -eq 0 ] ; then
	echo Refusing to run as root.
	exit 3
fi

usage() {
    cat <<EOF
Usage: sugar [OPTION]..

Start Sugar window manager.

Optional arguments.
  -d, --display DISPLAY     Display to start sugar
  -s, --scaling SCALING     Scale Sugar theme
                            Supported values: 72, 100
EOF
    exit 0
}

while [ $# -ne 0 ] ; do
    case "$1" in
      	-d | --display)
            shift
            export DISPLAY="$1"
            ;;
      	-s | --scaling)
            shift
            export SUGAR_SCALING="$1"
            ;;
      	-h | --help)
            usage
            ;;
    esac
    shift
done

# Set default profile dir
if test -z "$SUGAR_PROFILE"; then
    export SUGAR_PROFILE=default
fi

if test -z "$SUGAR_SCALING"; then
    dpi=$(xdpyinfo | grep resolution: | grep -o '[0-9]\+' | head -n1)
    if [ $dpi -ge 200 ]; then
        export SUGAR_SCALING=100
    else
        export SUGAR_SCALING=72
    fi
fi

export GTK2_RC_FILES="/usr/share/sugar/data/sugar-$SUGAR_SCALING.gtkrc"

# Needed for executing wpa_passphrase
export PATH="$PATH":/sbin:/usr/sbin

if ! test -f "$GTK2_RC_FILES"; then
    echo "sugar: ERROR: Gtk theme for scaling $SUGAR_SCALING not available in path $GTK2_RC_FILES"
    exit 1
fi

# Set default language
export LANG="${LANG:-en_US.utf8}"
export LANGUAGE="${LANGUAGE:-${LANG}}"

# Set Sugar's telepathy accounts directory
export MC_ACCOUNT_DIR=$HOME/.sugar/$SUGAR_PROFILE/accounts

# Check if the keyring exists and create a default
# unencrypted keyring (OLPC #10290)
keyring_path="$HOME/.gnome2/keyrings"
if [ ! -e "$keyring_path/login.keyring" ] &&
    [ ! -e "$keyring_path/default.keyring" ]; then
    mkdir -p "$keyring_path"
    echo 'default' > "$keyring_path/default"
    TIME=$(/bin/date +%s)
    KEYRING_TMP=$(mktemp "$keyring_path"/default.keyring-XXXXXX)
    cat >> "$KEYRING_TMP" <<EOF
[keyring]
display-name=default
ctime=$TIME
mtime=$TIME
lock-on-idle=false
lock-timeout=0
EOF

mv -f "$KEYRING_TMP" "$keyring_path/default.keyring"
fi

# Source language settings and debug definitions
if [ -f ~/.i18n ]; then
        . ~/.i18n
fi
if [ -f ~/.sugar/debug ]; then
        . ~/.sugar/debug
fi

echo Xcursor.theme: sugar | xrdb -merge
metacity --no-force-fullscreen -d $DISPLAY &

exec sugar-session
