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