#
# ltsp_config: This should be sourced by most scripts within an ltsp
# environment.  Ensures that LTSP5 defaults are set up
#
#

# Read in lts.conf entries.
if [ -f /etc/lts.conf ] && [ -n "$(grep -v ^# /etc/lts.conf)" ]; then
    eval $(getltscfg -a) || true
fi

# set compatbility for ltsp 4.x variables
X_VIDEO_RAM=${X_VIDEO_RAM:-"$X_VIDEORAM"}
LOCALDEV=${LOCALDEV:-"$LOCAL_STORAGE"}
X_CONF=${X_CONF:-"$XF86CONFIG_FILE"}

# Ensure a default for SERVER
if [ -z "$SERVER" -o "$SERVER" = "auto" ]; then
    nbd_pid=$(pgrep -f $(cat /proc/mounts|grep /rofs|grep nbd|cut -d" " -f1) 2>/dev/null) || true

    if [ -n "$nbd_pid" ]; then
        nbd_command=$(ps -o cmd $nbd_pid|grep -v CMD)
        server=$(echo $nbd_command|sed 's/[a-z\-]*. //'|sed 's/ .*//')
    else
        server=$(sed -ne '/ltsp.*nfs/ { s/^\([^:]*\):.*$/\1/; p; q }' /proc/mounts)
    fi

    SERVER="${server:-192.168.0.254}"
    export SERVER
fi

#
# Set CONFIGURE_X = True if it isn't set, X exists, and we haven't
# specified a manual xorg config file
#

if [ -z "$CONFIGURE_X" ] && [ -x /usr/bin/X ] && [ -z "$X_CONF" ]; then
    export CONFIGURE_X=True
fi

# Ensure a default screen if X is present
if ! env | grep -q '^SCREEN_'; then
    if [ -f /etc/X11/default-display-manager ]; then
        default_display_manager="$(cat /etc/X11/default-display-manager)"
        if [ -x "$default_display_manager" ]; then
            display_manager_configured=true
        elif [ "$default_display_manager" = "/usr/bin/gdm" ] && \
             [ -x /usr/sbin/gdm ]; then
            # some versions of gdm set default-display-manager to /usr/bin/gdm,
            # even if there is no /usr/bin/gdm, but start /usr/sbin/gdm.
            display_manager_configured=true
        fi
    fi
    if [ "$display_manager_configured" = "true" ]; then
        # Do nothing, these daemons (xdm, gdm, kdm, wdm, etc.) should configure themselves.
        true
    elif [ -x /usr/sbin/ldm ]; then
        export SCREEN_07=ldm
    elif [ -x /usr/sbin/sdm ]; then
        export SCREEN_07=sdm
    else
        export SCREEN_07=startx
    fi
fi

# set defaults for sound support
if [ -z "$SOUND_DAEMON" ]; then
    if [ -x /usr/bin/pulseaudio ]; then
        export SOUND_DAEMON=pulse
    elif [ -x /usr/bin/esd ]; then
        export SOUND_DAEMON=esd
    elif [ -x /usr/bin/nasd ]; then
        export SOUND_DAEMON=nasd
    fi
    if [ -z "$SOUND" ] && [ -n "$SOUND_DAEMON" ]; then
        export SOUND=True
    fi
fi

# set defaults for local device support
if [ -z "$LOCALDEV" ] && [ -x /usr/bin/ltspfsd ]; then
    export LOCALDEV=True
fi

# enable encrypted swap when cryptsetup is installed
if [ -z "$ENCRYPT_SWAP" ] && [ -x /sbin/cryptsetup ]; then
    export ENCRYPT_SWAP=True
fi
