All pastes #956954 Raw Edit

cyberorg

public shellscript v1 · immutable
#956954 ·published 2008-03-25 18:12 UTC
rendered paste body
#!/bin/bash## Xsession:	Setup the xsession and start the xsession#		script of the user for logon.#		# Copyright (c) 1998-2000 SuSE GmbH Nuernberg, Germany.# Copyright (c) 2005 SUSE LINUX Products GmbH# please report bugfixes or comments at http://www.suse.de/feedback.## Author: Werner Fink <werner@suse.de>### What we do if we are signaled or do not leave this# script with an appropriate exec call.#failsafe="xterm -ls -T Failsafe -geometry 80x24+0+0"trap "exec $failsafe" EXIT SIGHUP SIGINT SIGPIPE SIGTERM SIGIO## Some bash (1 and 2) settings to avoid trouble on a# failed program call.#set +e > /dev/null 2>&1set +u > /dev/null 2>&1set +o posix  > /dev/null 2>&1if type shopt > /dev/null 2>&1 ; then    shopt -s execfailelse    no_exit_on_failed_exec=1fi## Some system defaults#    XETCDIR=/etc/X11     XDMDIR=$XETCDIR/xdm   XINITDIR=$XETCDIR/xinit:  ${TMPDIR=/tmp}export OPENWINHOME TMPDIRtest -n "$XAUTHORITY" || unset XAUTHORITY## Save our arguments, maybe some of users call# `set' in their profile files.#argv="$@"## Handle the NoChange option of wdm #/sbin/pidof -s wdm > /dev/null 2>&1if test $? -eq 0 ; then    if test -z "$argv" ; then	if test -s $HOME/.wmrc ; then    	    argv=$(<$HOME/.wmrc)	#use wm from previous session	fi        else	echo "$argv" > $HOME/.wmrc	#save wm    fifi    readonly argv## Disable graphical login if normal login is disabled#login=falsewhile read sh ; do    if test "$sh" = "$SHELL" ; then	login=true	break    fidone < /etc/shellsif test "$login" != "true" -o "$SHELL" = "/bin/false" ; then    trap "exec xmessage -timeout 10 -button okay:1 -center	\	\"${0##*/}: Login for $USER is disabled.\""		\	EXIT SIGHUP SIGINT SIGPIPE SIGTERM SIGIO    exit 1fiunset sh login## Run the X session scripts with the login shell of# the user. This function requires bash 2.0 or higher.#exec_login (){    local shell=$SHELL    case "$SHELL" in    */csh|*/tcsh)		;;    */sh|*/bash)		;;    */bash2|*/bash1)		;;    */pdksh|*/ksh)		;;    */zsh|*/ash)		;;    */rbash)	shell=/bin/bash ;;    */rsh)	shell=/bin/sh	;;    */rksh)	shell=/bin/ksh	;;    */rzsh)	shell=/bin/zsh	;;    *)		shell=/bin/bash	;;    esac    exec -l -a ${shell##*/} ${shell} -c ${1+"exec $@"}}## Redirect errors to the standard user log files.#for errfile in	"$HOME/.xsession-errors" \		"$TMPDIR/xses-$USER"     \		"/tmp/xses-$USER"do    # GDM seems to handle this its self    test -z "$GDMSESSION" || break    # Once if KDM does handle this its self    #test -z "$KDMSESSION" || break    # Avoid bad symbolic links    case "$errfile" in	/tmp/*|$TMPDIR/*)	    if rm -f -- "$errfile" && errfile="$(mktemp -q "$errfile")" ; then		exec > "$errfile" 2>&1		break	    fi	    ;;	*)	    if test -e "$errfile"  || errfile="$(mktemp -q "$errfile")" ; then		exec > "$errfile" 2>&1		break	    fi	    ;;    esacdone## Check for X11R6 in execution path#case ":${PATH}:" in    *:/usr/X11R6/bin:*) ;;    *)  PATH="${PATH}:/usr/X11R6/bin"esac## Window manager provided later by KDM/GDM# or read from the system settings#WINDOWMANAGER=""export WINDOWMANAGER## Handle arguments given by xdm/kdm/gdm.#forced=noset -- $argvif test $# -ge 1 ; then    case "$1" in    failsafe)	exec $failsafe   ;;    default)	;;    custom)	;;    *)		forced=yes		WINDOWMANAGER=$1 ;;    esac    if test $# -ge 2 -a -n "$2" ; then	LANG=$2	export LANG    else	# get the system default locale settings:	if [ -z "$LANG" -a -f /etc/profile.d/lang.sh ] ; then	    . /etc/profile.d/lang.sh	fi    fifi# If LANG is still not set, get the system default locale settings:#if [ -z "$LANG" -a -f /etc/profile.d/lang.sh ] ; then    . /etc/profile.d/lang.shfi## No window manager? Get system default#if test "$forced" != "yes" ; then    . /etc/profile.d/profile.shfi## Source common code shared between the# X session and X init scripts#. /etc/X11/xinit/xinitrc.common## Some common user and system files#session=$HOME/.xsessionxinitrc=$HOME/.xinitrcsysinit=$XINITDIR/xinitrcsyssess=$XDMDIR/sys.xsession## Forced X session type if the user asked for# an other session environment.#if test "$forced" = "yes" ; then     unset WINDOW_MANAGER STARTUP     test -x $syssess && exec_login "$syssess"     exec_login "/bin/bash $syssess"fi# User login X session# If the user doesn't have their own xsession, then run# system xsession or xinitrc script if they existif   test -f $session ; then     test -x $session && exec_login "$session"     exec_login "/bin/bash $session"elif test -f $xinitrc ; then     test -x $xinitrc && exec_login "$xinitrc"     exec_login "/bin/bash $xinitrc"elif test -f $syssess; then     test -x $syssess && exec_login "$syssess"     exec_login "/bin/bash $syssess"elif test -f $sysinit ; then     test -x $sysinit && exec_login "$sysinit"     exec_login "/bin/bash $sysinit"elif test -n "$WINDOWMANAGER" ; then     unset WINDOW_MANAGER STARTUP     exec_login "$WINDOWMANAGER"fi## Call failsafe#exit 1