2 # simple script that generates entrance config using build_config.sh.in
3 # and .desktop files from /usr/share/xsessions
5 CONFIGIN="/etc/X11/entrance/build_config.sh.in"
6 CONFIGOUT="/tmp/build_config.sh"
7 SESSIONS="/tmp/sessions"
8 ICONDIR="/usr/share/entrance/images/sessions"
9 THEMEDIR="/usr/share/entrance/themes"
15 [ -f $CONFIGIN -a -r $CONFIGIN ] || \
16 die 1 "No config file $CONFIGIN, or not readable"
18 [ -d /usr/share/xsessions ] || die 2 "No xsessions dir"
21 cat << EOF > /tmp/default.desktop
25 cat << EOF > /tmp/failsafe.desktop
31 SESSION_SRTING="$(grep -E "^#session:" $CONFIGIN | sed 's/^#session://')"
35 for DESKTOP in /tmp/default.desktop /usr/share/xsessions/*.desktop \
36 /tmp/failsafe.desktop; do
38 EXEC=$(grep -E "^Exec=" $DESKTOP | sed 's/^Exec=//' )
39 [ -n "$EXEC" ] || ( echo "Skipping $DESKTOP !!!" >&2; continue )
40 [ -n "$(which $EXEC 2>/dev/null)" ] && EXEC=$(which $EXEC)
41 EXEC=$(echo $EXEC | sed 's_/_\\/_g')
43 NAME="$(grep -E "^Name=" $DESKTOP | sed 's/^Name=//' | \
45 [ -n "$NAME" ] || NAME="$EXEC"
47 ICON="$(basename $DESKTOP .desktop).png"
48 [ -r $ICONDIR/$ICON ] || ICON=default.png
50 echo "$SESSION_SRTING" | \
51 sed -e "s/@NUM@/$NUM/g" -e "s/@SESSION@/$EXEC/g" \
52 -e "s/@TITLE@/$NAME/g" -e "s/@ICON@/$ICON/g" >> $SESSIONS
56 THEME=$(grep entrance/theme $CONFIGIN | sed 's/.*\s//; s/"//g')
59 if ! [ -r $THEMEDIR/$THEME ]; then
60 OLDT=$(grep entrance/theme $CONFIGIN | sed 's/.*\s//')
61 NEWT=$(ls $THEMEDIR | head -n 1)
64 sed -e "s/@auth_mode@/1/" -e "s/@COUNT@/$NUM/" -e "s/$OLDT/$NEWT/" $CONFIGIN > $CONFIGOUT