Release new version 0.105.0
[grml-terminalserver.git] / grml-terminalserver
index b8328e8..1314205 100755 (executable)
@@ -38,8 +38,8 @@ function printUsage
   cat <<EOT
 Usage: "$PROG_NAME__" [OPTIONS] <command>
 
-$PROG_NAME__ is the config program for the terminalserver
-comming with grml.
+$PROG_NAME__ is the configuration program for the terminalserver
+provided by Grml.
 
 COMMANDS:
    help             This help text
@@ -154,7 +154,7 @@ function runIptables
 
 function startIptables
 {
-  if [ -x /sbin/iptables ] ; then
+  if [ -x $(command -v iptables) ] ; then
     if [[ $NAT_INTERFACE_ != "" ]]; then
        local nat_source_ip_=`netGetIp "$NAT_INTERFACE_" warn`
 
@@ -176,7 +176,7 @@ function startIptables
        fi
     fi
   else
-    warn "iptables executable not avilable"
+    warn "iptables executable not available"
   fi
 }
 
@@ -185,7 +185,7 @@ function stopIptables
   if [[ $IPTABLES_SNAT_ != "true" ]]; then
     return
   fi
-  if [ -x /sbin/iptables ] ; then
+  if [ -x $(command -v iptables) ] ; then
     if [[ $NAT_INTERFACE_ != "" ]]; then
        local nat_source_ip_=`netGetIp "$NAT_INTERFACE_" warn`
 
@@ -209,23 +209,28 @@ function createTftpConf
   removeTftpConf
 
   execute "mkdir -p $TFTPD_DATA_DIR_/pxelinux.cfg" die
-  execute "install -m 644 /usr/lib/syslinux/pxelinux.0 $TFTPD_DATA_DIR_" die
-  execute "install -m 644 $PATH_/minirt26.gz $TFTPD_DATA_DIR_" die
+  if [ -r /usr/lib/PXELINUX/pxelinux.0 ] ; then
+    execute "install -m 644 /usr/lib/PXELINUX/pxelinux.0 $TFTPD_DATA_DIR_" die
+  else # older versions of syslinux-common (<= 2:4.05+dfsg-6+deb7u1):
+    execute "install -m 644 /usr/lib/syslinux/pxelinux.0 $TFTPD_DATA_DIR_" die
+  fi
   if [ -d "$MOUNT_POINT_"/boot/release ] ; then
     cp -r "$MOUNT_POINT_"/boot/release "$TFTPD_DATA_DIR_"
-  else
-    execute "install -m 644 $KERNEL_IMAGE_ $TFTPD_DATA_DIR_/linux26" die
   fi
   [ -f "$MEMTEST_IMAGE" ] && execute "install -m 644 $MEMTEST_IMAGE_ $TFTPD_DATA_DIR_/memtest" die
   execute "install -m 644 $PXE_BOOT_MSG_ $TFTPD_DATA_DIR_" die
   [ -f "$PXE_BOOT_LOGO_" ] && execute "install -m 644 $PXE_BOOT_LOGO_ $TFTPD_DATA_DIR_" die
 
+  # PXE / BIOS boot (pxelinux)
   execute "source $TEMPLATE_CONFIG_DIR_/grub-pxelinux_config" die
+
+  # PXE / EFI boot (GRUB)
+  execute "source $TEMPLATE_CONFIG_DIR_/grub-shim_config" die
 }
 
 function stopTftp
 {
-  start-stop-daemon --stop --quiet -p "$TFTPD_PID_"
+  start-stop-daemon --stop --quiet -p "$TFTPD_PID_" --user nobody
 }
 function startTftp
 {
@@ -396,14 +401,12 @@ isExistent $DEFAULT_CONFIG_ die
 . $CONFIG_
 # used config vars:
 # MOUNT_POINT_
-# KERNEL_IMAGE_
 # MEMTEST_IMAGE_
 # PXE_BOOT_MSG_
 # PXE_BOOT_LOGO_
-if [[ $MOUNT_POINT_ == "" || $KERNEL_IMAGE_ == "" || $MEMTEST_IMAGE_ == "" || \
+if [[ $MOUNT_POINT_ == "" || $MEMTEST_IMAGE_ == "" || \
   $PXE_BOOT_MSG_ == "" || $PXE_BOOT_MSG_ == "" ]]; then
   warn "MOUNT_POINT_=\"$MOUNT_POINT_\" \
-KERNEL_IMAGE_=\"$KERNEL_IMAGE_\" \
 MEMTEST_IMAGE_=\"$MEMTEST_IMAGE_\"
 PXE_BOOT_MSG_=\"$PXE_BOOT_MSG_\"
 PXE_BOOT_LOGO_=\"$PXE_BOOT_LOGO_\""
@@ -435,9 +438,9 @@ if [ "$1" == 'start' ]; then
   esac
 fi
 if [ $check_necessary_files_ == 'yes' ]; then
-  # test for files absolutly necessary for grml-terminalserver and created from -config
+  # test for files absolutely necessary for grml-terminalserver and created from -config
   problem_=0
-  for i in $PATH_/minirt26.gz; do
+  for i in $PATH_/initrd.img; do
     isExistent $i warn || problem_=1
   done
   if [ $problem_ -eq 1 ]; then