xref: /onnv-gate/usr/src/grub/grub-0.97/util/grub-set-default.in (revision 8044:b3af80bbf173)
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