Git Repositories

Djemos script updated...and improved.
authorCyrille Pontvieux <jrd@enialis.net>
Fri, 28 Feb 2014 11:13:22 +0000 (12:13 +0100)
committerCyrille Pontvieux <jrd@enialis.net>
Fri, 28 Feb 2014 11:13:22 +0000 (12:13 +0100)
grub/14.1/2.00/SLKBUILD
grub/14.1/2.00/grub-default
grub/14.1/2.00/grubconfig

index 4fadbe4..e32b42b 100644 (file)
@@ -12,7 +12,7 @@ _getdatever=1.0
 _gettextvarver=1.0
 _unifontver=5.1.20080820
 _dejavuver=2.33
-pkgrel=5cp
+pkgrel=6cp
 
 source=(
   "grub-default"
index 7a05313..c69cd8f 100644 (file)
@@ -8,9 +8,9 @@
 # For savedefault functionality
 GRUB_DEFAULT=saved
 
+GRUB_TIMEOUT=5
 #GRUB_HIDDEN_TIMEOUT=0
 GRUB_HIDDEN_TIMEOUT_QUIET=false
-GRUB_TIMEOUT=10
 GRUB_DISTRIBUTOR="Salix $(sed -e 's/^Slackware //' /etc/slackware-version)"
 GRUB_CMDLINE_LINUX_DEFAULT="quiet"
 GRUB_CMDLINE_LINUX="vt.default_utf8=1"
@@ -27,6 +27,9 @@ GRUB_BACKGROUND="/boot/grub/salix.png"
 # modes only.  Entries specified as foreground/background.
 #GRUB_COLOR_NORMAL="light-blue/black"
 #GRUB_COLOR_HIGHLIGHT="light-cyan/blue"
+GRUB_MENU_COLOR_NORMAL=white/black
+GRUB_COLOR_HIGHLIGHT=white/cyan
+GRUB_COLOR_NORMAL=white/black
 
 # The theme which should be used for the graphical terminal.
 # This makes the background option obsolete.
@@ -39,6 +42,9 @@ GRUB_BACKGROUND="/boot/grub/salix.png"
 # note that you can use only modes which your graphic card supports via VBE
 # you can see them in real GRUB with the command `vbeinfo'
 GRUB_GFXMODE=auto
+#GRUB_GFXMODE=640x480
+#GRUB_GFXMODE=1024x768x32
+
 
 # Uncomment to allow the kernel use the same resolution used by grub
 GRUB_GFXPAYLOAD_LINUX=keep
@@ -46,6 +52,10 @@ GRUB_GFXPAYLOAD_LINUX=keep
 # Uncomment if you don't want GRUB to pass "root=UUID=xxx" parameter to Linux
 #GRUB_DISABLE_LINUX_UUID=true
 
+# Font used on the graphical terminal:
+#GRUB_FONT=/usr/share/grub/dejavusansmono.pf2
+#GRUB_FONT=/usr/share/grub/unicode.pf2
+
 # Uncomment to disable generation of recovery mode menu entries
 GRUB_DISABLE_RECOVERY=true
 
index ba4c551..03ae7e8 100644 (file)
@@ -1,8 +1,9 @@
 #!/bin/sh
+# vim: et sw=2 sts=2 ts=2 tw=0:
 #
 # Copyright 2013 Dimitris Tzemos <djemos@slackel.gr>
-# Copyright 2013  SalixOS Linux, <www.salixos.org>
-# Copyright 2013  Slackel Linux <www.slackel.gr>
+# Copyright 2014 Cyrille Pontvieux <jrd@salixos.org>
+# 
 # All rights reserved.
 #
 # Redistribution and use of this script, with or without modification, is
 #  ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 #
 
-# Set OS name (Slackel, Salix)
-#OS="Slackel $(sed -e 's/^Slackware //' /etc/slackware-version)"
-# are we on a running system?
-if [ -r /etc/slackware-version ]; then
-OS="Salix $(sed -e 's/^Slackware //' /etc/slackware-version)"
-else
-OS="Salix"
-fi
-
-# Title
-#BACKTITLE="$OS GRUB2 Installer v0.1 - By Dimitris Tzemos <djemos@slackel.gr>"
-BACKTITLE="$OS - GRUB2 Installer"
-
-initialize(){
-# Create temporary directory
-TMP=/var/log/setup/tmp
-if [ ! -d "$TMP" ]; then 
- mkdir -p "$TMP"
-fi
-#T_PX="`cat $TMP/SeTT_PX`"
-
-# Set the OS root directory (called T_PX for some unknown reason).
-# If an argument is given to this script and it is a directory, it
-# is taken to be the root directory.  First though, we check for a
-# directory named $T_PX, and that gets the first priority.
-if [ ! -d "$T_PX" ]; then
-  if [ ! "$1" = "" ]; then
-    if [ -d "$1" ]; then
-      T_PX="$1"
-    fi
+initialize() {
+  if [ ! -d "$TMP" ]; then
+    mkdir -p "$TMP"
+    chmod 700 "$TMP"
+  fi
+  # T_PX is the root device. Used in the Slackware installer.
+  # The variable name is kept the same here, for consistence.
+  if [ -n "$!" ] && [ -d "$1" ]; then
+    T_PX="$1"
+  elif [ -r $TMP/SeTT_PX ]; then
+    T_PX=$(cat $TMP/SeTT_PX)
   else
-    # Are we on the installer image?
-    if [ -r /usr/lib/setup/SeTpartitions ]; then
-      T_PX=/mnt
-    # Or, are we on a running system?
-    elif [ -r /etc/slackware-version ]; then
-      T_PX=/
-    # One more installer-likely thing:
-    elif [ -r /usr/lib/setup/setup ]; then
-      T_PX=/mnt
-    else
-      # We will have to assume we've on an installed and running system.
-      T_PX=/
-    fi
+    T_PX=/
   fi
-fi
-
-# Determine the root partition (such as /dev/hda2)
-ROOT_DEVICE=$2
-if [ "$ROOT_DEVICE" = "" ]; then
- if [ -r $TMP/SeTrootdev ]; then
-  ROOT_DEVICE="`cat $TMP/SeTrootdev`"
- else
-  ROOT_DEVICE="`mount | cut -f 1 -d " " | sed -n "1 p"`"
- fi
-fi
-
-#Find Root Device
-echo $ROOT_DEVICE > "$TMP/device.txt"
-
-# Define selected device and mount point
-DEV="$(cat "$TMP/device.txt"|tr -d ' ')"
-if [ ! "$(mount|grep "^$DEV")" ]; then
-       mount $DEV >/dev/null 2>&1
-fi
-
-if [ "$DEV" = "" -o "$T_PX" = "" ]; then exit 1; fi
+  cd "$T_PX"
+  # Determine the root partition (such as /dev/hda2)
+  if [ -n "$2" ] && [ -e "$2" ]; then
+    DEV="$2"
+  elif [ -r $TMP/SeTrootdev ]; then
+    DEV=$(cat $TMP/SeTrootdev)
+  else
+    DEV=$(df .|sed -rn '$s/^([^ \t]+)[ \t].*/\1/p')
+  fi
+  [ -n "$DEV" ] || exit 1
+  # Set OS name
+  # are we on a running system?
+  if [ -r etc/slackware-version ]; then
+    OS="Salix $(sed -e 's/^Slackware //' etc/slackware-version)"
+  else
+    OS="Salix"
+  fi
+  # Title
+  BACKTITLE="$OS - GRUB Installer"
 }
 
 ask_append() {
- dialog --title "OPTIONAL GRUB_CMDLINE_LINUX_DEFAULT=\"<kernel parameters>\" LINE" --inputbox \
+  dialog \
+    --title 'OPTIONAL GRUB_CMDLINE_LINUX_DEFAULT="<kernel parameters>" LINE' \
+    --inputbox \
 "Some systems might require extra parameters to be passed to the kernel. \
 If you needed to pass parameters to the kernel when you booted the Slackware \
 bootdisk, you'll probably want to enter the same ones here.  Most \
 systems won't require any extra parameters.  If you don't need any, just \
 hit ENTER to continue.\n\
 " 12 72 2> $TMP/reply
- RETVAL=$?
- return $RETVAL
 RETVAL=$?
 return $RETVAL
 }
 
-append_grub_conf(){
-ask_append;
- if [ $? = 1 -o $? = 255 ]; then
-  GRUB_CMDLINE_LINUX_DEFAULT="quiet "
- fi
- GRUB_CMDLINE_LINUX_DEFAULT="quiet `cat $TMP/reply`"
-UTFVT="vt.default_utf8=1"
-
- if [ ! "$GRUB_CMDLINE_LINUX_DEFAULT" = "" -o ! "$UTFVT" = "" ]; then
-     sed -i "s/GRUB_CMDLINE_LINUX_DEFAULT=.*/GRUB_CMDLINE_LINUX_DEFAULT='$GRUB_CMDLINE_LINUX_DEFAULT'/" $T_PX/etc/default/grub
-     sed -i "s/GRUB_CMDLINE_LINUX=.*/GRUB_CMDLINE_LINUX='$UTFVT'/" $T_PX/etc/default/grub   
- fi
+append_grub_conf() {
+  ask_append;
+  GRUB_CMDLINE_LINUX_DEFAULT="quiet $(cat $TMP/reply)"
+  UTFVT='vt.default_utf8=1'
+  sed -i "
+    s/GRUB_CMDLINE_LINUX_DEFAULT=.*/GRUB_CMDLINE_LINUX_DEFAULT='$GRUB_CMDLINE_LINUX_DEFAULT'/;
+    s/GRUB_CMDLINE_LINUX=.*/GRUB_CMDLINE_LINUX='$UTFVT'/;
+    " etc/default/grub
 }
 
-
-install_grub(){
-# Setup Menu
-dialog --backtitle "$BACKTITLE" --title " INSTALL GRUB2 " \
---menu "\nWhere do you want to install the boot loader?" 0 0 0 \
-"MBR" "Be installed in $(echo "$DEV"|sed 's/[0-9]$//') (recommended) " \
-"ROOT" "Be installed in $DEV (Expert)" \
-"EXIT" "Quit (Do not install the grub2)" \
-2> $TMP/option_menu.txt
-OPTION="$(cat $TMP/option_menu.txt)"
-if [ "$OPTION" = "MBR" ]; then
-       DEVICE="$(echo "$DEV"|sed 's/[0-9]$//')"
-elif [ "$OPTION" = "ROOT" ]; then
-       DEVICE="$DEV"
-else
-  clear && exit 1
-fi
-
-# Confirm Installation
-dialog --backtitle "$BACKTITLE" \
-       --title " CONTINUE? " \
-       --yesno "\n This will install the GRUB2 bootloader \n in $DEVICE \n " 0 0
-if [ $? -ne 0 ]; then exit 1; fi
-
-# install grub2
-TEXT="Installing bootloader in $DEVICE...\n "
-chroot "$T_PX" grub-install --target=i386-pc --boot-directory=/boot --recheck --force $DEVICE 2>&1 |\
-while read LINE; do
-       TEXT="$TEXT \n$LINE"
-       dialog --backtitle "$BACKTITLE" --title " INSTALLING GRUB2 " --infobox "$TEXT" 0 0
-done
-sleep 3
-
-# Update boot menu
-TEXT="Updating /boot/grub/grub.cfg...\n "
-chroot "$T_PX" update-grub 2>&1 |\
-while read LINE; do
-       TEXT="$TEXT \n$LINE"
-       dialog --backtitle "$BACKTITLE" --title " UPDATING GRUB2 " --infobox "$TEXT" 0 0
-done
-sleep 1
+install_grub() {
+  # Setup Menu
+  dialog --backtitle "$BACKTITLE" \
+         --title ' INSTALL GRUB2 ' \
+         --menu "\nWhere do you want to install the boot loader?" 0 0 0 \
+    "MBR" "Install in $(echo "$DEV"|sed 's/[0-9]$//') (recommended) " \
+    "ROOT" "Install in $DEV (Expert)" \
+    "EXIT" "Quit (Do not install GRUB)" \
+    2> $TMP/option_menu.txt
+  OPTION="$(cat $TMP/option_menu.txt)"
+  if [ "$OPTION" = "MBR" ]; then
+    DEVICE="$(echo "$DEV"|sed 's/[0-9]$//')"
+  elif [ "$OPTION" = "ROOT" ]; then
+    DEVICE="$DEV"
+  else
+    clear && exit 1
+  fi
+  # Confirm Installation
+  dialog --backtitle "$BACKTITLE" \
+         --title ' CONTINUE? ' \
+         --yesno "\n This will install the GRUB2 bootloader \n in $DEVICE \n " 0 0 || exit 1
+  # install grub2
+  TEXT="Installing bootloader in $DEVICE...\n "
+  chroot "$T_PX" grub-install --target=i386-pc --boot-directory=/boot --recheck --force $DEVICE 2>&1 |\
+  while read LINE; do
+    TEXT="$TEXT \n$LINE"
+    dialog --backtitle "$BACKTITLE" --title ' INSTALLING GRUB2 ' --infobox "$TEXT" 0 0
+  done
+  sleep 3
+  # Update boot menu
+  TEXT="Updating boot/grub/grub.cfg...\n "
+  chroot "$T_PX" update-grub 2>&1 |\
+  while read LINE; do
+    TEXT="$TEXT \n$LINE"
+    dialog --backtitle "$BACKTITLE" --title ' UPDATING GRUB2 ' --infobox "$TEXT" 0 0
+  done
+  sleep 1
 }
 
-initialize
+# Check for root
+[ $(id -u) -eq 0 ] || exit 1
+# Create temporary directory
+TMP=/var/log/setup/tmp
+T_PX='' # passed as first argument by the installer
+DEV='' # passed as second argument by the installer
+BACKTITLE=''
+initialize "$@"
+cd "$T_PX"
 append_grub_conf
 install_grub
+rm -f $TMP/reply $TMP/option_menu.txt 2>/dev/null || true