]> git.pld-linux.org Git - packages/entrance.git/blame - entrance.gen-conf
- fix test -n
[packages/entrance.git] / entrance.gen-conf
CommitLineData
1ad48481 1#!/bin/sh
2# simple script that generates entrance config using build_config.sh.in
3# and .desktop files from /usr/share/xsessions
4
5CONFIGIN="/etc/X11/entrance/build_config.sh.in"
6CONFIGOUT="/tmp/build_config.sh"
7SESSIONS="/tmp/sessions"
8ICONDIR="/usr/share/entrance/images/sessions"
9
10die() {
11 echo "$2" >&2
12 exit $1
13}
14[ -f $CONFIGIN -a -r $CONFIGIN ] || \
15 die 1 "No config file $CONFIGIN, or not readable"
16
17[ -d /usr/share/xsessions ] || die 2 "No xsessions dir"
18
19# two common desktops
20cat << EOF > /tmp/default.desktop
21Name=Default
22Exec=default
23EOF
24cat << EOF > /tmp/failsafe.desktop
25Name=Failsafe
26Exec=failsafe
27EOF
28
29
30SESSION_SRTING="$(grep -E "^#session:" $CONFIGIN | sed 's/^#session://')"
31
32: > $SESSIONS
33NUM=0
34for DESKTOP in /tmp/default.desktop /usr/share/xsessions/*.desktop \
35 /tmp/failsafe.desktop; do
36
a8f0a285 37 EXEC=$(grep -E "^Exec=" $DESKTOP | sed 's/^Exec=//' )
1ad48481 38 [ -n "$EXEC" ] || ( echo "Skipping $DESKTOP !!!" >&2; continue )
a8f0a285 39 [ -n "$(which $EXEC 2>/dev/null)" ] && EXEC=$(which $EXEC)
40 EXEC=$(echo $EXEC | sed 's_/_\\/_g')
1ad48481 41
42 NAME="$(grep -E "^Name=" $DESKTOP | sed 's/^Name=//' | \
43 sed 's_/_\\/_g')"
71055f9a 44 [ -n "$NAME" ] || NAME="$EXEC"
1ad48481 45
46 ICON="$(basename $DESKTOP .desktop).png"
47 [ -r $ICONDIR/$ICON ] || ICON=default.png
48
49 echo "$SESSION_SRTING" | \
50 sed -e "s/@NUM@/$NUM/g" -e "s/@SESSION@/$EXEC/g" \
51 -e "s/@TITLE@/$NAME/g" -e "s/@ICON@/$ICON/g" >> $SESSIONS
52 NUM=$(($NUM+1))
53done
54
55sed -e "s/@auth_mode@/1/" -e "s/@COUNT@/$NUM/" $CONFIGIN > $CONFIGOUT
56chmod 755 $CONFIGOUT
57exec $CONFIGOUT
This page took 0.091373 seconds and 4 git commands to generate.