1 #! /bin/sh 2 3 # Set a default boot entry for GRUB 4 # Copyright (C) 2004 Free Software Foundation, Inc. 5 # 6 # This file is free software; you can redistribute it and/or modify it 7 # under the terms of the GNU General Public License as published by 8 # the Free Software Foundation; either version 2 of the License, or 9 # (at your option) any later version. 10 # 11 # This program is distributed in the hope that it will be useful, but 12 # WITHOUT ANY WARRANTY; without even the implied warranty of 13 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 14 # General Public License for more details. 15 # 16 # You should have received a copy of the GNU General Public License 17 # along with this program; if not, write to the Free Software 18 # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 19 20 # Initialize some variables. 21 PACKAGE=grub 22 VERSION=0.97 23 24 rootdir= 25 entry= 26 27 # Usage: usage 28 # Print the usage. 29 usage () { 30 cat <<EOF 31 Usage: grub-set-default [OPTION] entry 32 Set the default boot entry for GRUB. 33 34 -h, --help print this message and exit 35 -v, --version print the version information and exit 36 --root-directory=DIR Use the directory DIR instead of the root directory 37 38 ENTRY is a number or the special keyword \`default\'. 39 40 Report bugs to <bug-grub (at] gnu.org>. 41 EOF 42 } 43 44 # Check the arguments. 45 for option in "$@"; do 46 case "$option" in 47 -h | --help) 48 usage 49 exit 0 ;; 50 -v | --version) 51 echo "grub-set-default (GNU GRUB ${VERSION})" 52 exit 0 ;; 53 --root-directory=*) 54 rootdir=`echo "$option" | sed 's/--root-directory=//'` ;; 55 -*) 56 echo "Unrecognized option \`$option'" 1>&2 57 usage 58 exit 1 59 ;; 60 *) 61 if test "x$entry" != x; then 62 echo "More than one entries?" 1>&2 63 usage 64 exit 1 65 fi 66 # We don't care about what the user specified actually. 67 entry="${option}" ;; 68 esac 69 done 70 71 if test "x$entry" = x; then 72 echo "entry not specified." 1>&2 73 usage 74 exit 1 75 fi 76 77 # Determine the GRUB directory. This is different among OSes. 78 grubdir=${rootdir}/boot/grub 79 if test -d ${grubdir}; then 80 : 81 else 82 grubdir=${rootdir}/grub 83 if test -d ${grubdir}; then 84 : 85 else 86 echo "No GRUB directory found under ${rootdir}/" 1>&2 87 exit 1 88 fi 89 fi 90 91 file=${grubdir}/default 92 if test -f ${file}; then 93 chmod 0600 ${file} 94 rm -f ${file} 95 fi 96 cat <<EOF > $file 97 $entry 98 # 99 # 100 # 101 # 102 # 103 # 104 # 105 # 106 # 107 # 108 # WARNING: If you want to edit this file directly, do not remove any line 109 # from this file, including this warning. Using \`grub-set-default\' is 110 # strongly recommended. 111 EOF 112 113 # Bye. 114 exit 0 115