Do not display usage information when using the -nostart option
[grml-x.git] / grml-x
diff --git a/grml-x b/grml-x
index 97e2ae1..a28a5fb 100755 (executable)
--- a/grml-x
+++ b/grml-x
@@ -4,9 +4,15 @@
 # Authors:       grml-team (grml.org), (c) Michael Prokop <mika@grml.org>
 # Bug-Reports:   see http://grml.org/bugs/
 # License:       This file is licensed under the GPL v2.
-# Latest change: Don Jul 12 02:53:42 CEST 2007 [mika]
 ################################################################################
 
+# make sure /tmp is writeable {{{
+  if ! [ -w /tmp ] ; then
+     echo 'Fatal: /tmp is not writeable. Can not resume therefore, sorry.' >&2
+     exit 1
+  fi
+# }}}
+
 # debugging {{{
 # usage: DEBUG=1 grml-x ..... 2>/tmp/grml-x-debug.log
   if [[ $DEBUG -gt 0 ]]; then
@@ -266,6 +272,7 @@ Just press Ctrl-C to cancel operation.
 sync()
 {
    [ -r "$MONITORINFO" ] || monitor # get monitor settings
+   [ -r "$MONITORINFO" ] || bailout 1
    vsyncval=$(awk '/Vert. Sync Range:/{print $4}' $MONITORINFO | sed 's/-/.0 - / ; s/$/.0/' | head -1)
    hsyncval=$(awk '/Hor. Sync Range:/{print $4}'  $MONITORINFO | sed 's/-/.0 - / ; s/$/.0/' | head -1)
    if [ -z $vsyncval ] ; then
@@ -286,7 +293,7 @@ mouse()
    if grep -q 'Device:.*Synaptics' "$MOUSEINFO" ; then
     if [[ "$SYNAPTICS" == "yes" ]] ; then # check for '-nosynaptics'-option
      MOUSEDRIVER='synaptics'
-     SYNMOUSE='InputDevice    "Synaptics"  "AlwaysCore"'
+     SYNMOUSE='InputDevice    "Synaptics" # "AlwaysCore"'
      SYNMOUSEDETAIL="
 Section \"InputDevice\"
   Driver        \"synaptics\"
@@ -321,7 +328,7 @@ EndSection
     if grep -q 'Device:.*ALPS' "$MOUSEINFO" ; then
      if [[ "$SYNAPTICS" == "yes" ]] ; then # check for '-nosynaptics'-option
       MOUSEDRIVER='synaptics'
-      SYNMOUSE='InputDevice    "Synaptics"  "AlwaysCore"'
+      SYNMOUSE='InputDevice    "Synaptics" # "AlwaysCore"'
       SYNMOUSEDETAIL="
 Section \"InputDevice\"
   Driver        \"synaptics\"
@@ -583,6 +590,7 @@ EndSection"
      writehwinfo
 
      # monitor stuff
+     [ -r "$HWINFO_TMP" ] || bailout 1
      MONITOR=$(awk '/monitor.1:/{print $3}' $HWINFO_TMP)
      [[ $MONITOR != 'ddc' ]] && NODDC=yes
 
@@ -711,7 +719,7 @@ $XFONTS
         FontPath     "/var/lib/defoma/x-ttcidfont-conf.d/dirs/TrueType"
 EndSection
 
-# Modules - see /usr/X11R6/lib/modules/fonts and /usr/X11R6/lib/modules/extensions
+# Modules - see /usr/lib/xorg/modules/fonts and /usr/lib/xorg/modules/extensions
 Section "Module"
         Load  "dbe"       # double buffer extension
         Load  "dri"       # direct rendering
@@ -721,6 +729,7 @@ Section "Module"
         Load  "extmod"    # some commonly used server extensions (e.g. shape extension)
         Load  "record"    # recording extension
         Load  "evdev"     # generic input handling driver on Linux
+        Load  "xtrap"     # X Trap extension
         # Load  "vbe"       # Vesa BIOS Extension
         # Load  "i2c"       # I2C bus
         # Load  "int10"     # initialize graphics cards via int10 call to the BIOS
@@ -883,6 +892,11 @@ $fg[red]"
 function runit
 {
   writeconfig
+  if [ "$(readlink /etc/X11/X)" = /bin/true ] ; then
+     print "$bold_color$fg[red]Fatal: /etc/X11/X is a symlink to /bin/true."
+     print "Fix it via running 'ln -sf /usr/bin/Xorg /etc/X11/X'"
+     exit 10
+  fi
   if [ -z "$NOSTART" ] ; then
     print "$reset_color"
     if [ -x /etc/init.d/xorg-common ] ; then
@@ -896,14 +910,15 @@ function runit
     if [ -z "$DISPLAY" ] ; then
       print "$bold_color$fg[green]Now trying to run startx.$reset_color"
       startx $XINITRC -- $XOPTS
+      return 1
     else
       print "$bold_color$fg[green]Now trying to run startx on display $DISPLAY.$reset_color"
       startx $XINITRC -- :$DISPLAY $XOPTS
+      return 1
     fi
   else
     print "$bold_color$fg[blue]Not running startx as requested via option.$reset_color"
   fi
-  return 1
 }
 # }}}
 
@@ -981,7 +996,7 @@ cleanup
 
 # xinitrc {{{
   if ! [ -x "$(which $WINDOWMANAGER)" ] ; then
-     print "$bg[black]$fg[red]${bold_color}Fatal: windowmanager $fg[blue]$WINDOWMANAGER$fg[red] not executable, startx won' work.${reset_color}">&2
+     print "$bg[black]$fg[red]${bold_color}Fatal: windowmanager $fg[blue]$WINDOWMANAGER$fg[red] not executable, startx will not work.${reset_color}">&2
      bailout
   fi
   if [ -w "$XINITRC" ] ; then