2 # Generate kboot.conf by inspecting /boot contents.
3 # Copyright (C) 2011 Antonio Ospite <ospite@studenti.unina.it>
5 # Inspired by grub-mkconfig
7 # This program is free software: you can redistribute it and/or modify
8 # it under the terms of the GNU General Public License as published by
9 # the Free Software Foundation, either version 3 of the License, or
10 # (at your option) any later version.
12 # This progra, is distributed in the hope that it will be useful,
13 # but WITHOUT ANY WARRANTY; without even the implied warranty of
14 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 # GNU General Public License for more details.
17 # You should have received a copy of the GNU General Public License
18 # along with this software. If not, see <http://www.gnu.org/licenses/>.
22 PACKAGE_NAME=kboot-mkconfig
27 sbindir=${exec_prefix}/sbin
28 bindir=${exec_prefix}/bin
29 libdir=${exec_prefix}/lib
32 datarootdir=${prefix}/share
33 datadir=${datarootdir}
34 pkgdatadir=${datadir}/kboot
44 Generate a kboot config file
46 -o, --output=FILE output generated config to FILE [default=stdout]
47 -h, --help print this message and exit
48 -v, --version print the version information and exit
50 Report bugs to <bug-kboot@gnu.org>.
58 if test $# -eq 0; then
59 echo "$0: option requires an argument -- '$opt'" 1>&2
65 # Check the arguments.
76 echo "$self (${PACKAGE_NAME}) ${PACKAGE_VERSION}"
79 kboot_conf=`argument $option "$@"`; shift;;
81 kboot_conf=`echo "$option" | sed 's/--output=//'`
84 echo "Unrecognized option \`$option'" 1>&2
88 # Explicitly ignore non-option arguments, for compatibility.
92 . ${libdir}/kboot/kboot-mkconfig_lib
94 if [ "x$EUID" = "x" ] ; then
98 if [ "$EUID" != 0 ] ; then
100 case "`uname 2>/dev/null`" in
102 # Cygwin: Assume root if member of admin group
103 for g in `id -G 2>/dev/null` ; do
109 if [ $root != t ] ; then
110 echo "$self: You must run this as root" >&2
116 if test -f ${sysconfdir}/default/kboot ; then
117 . ${sysconfdir}/default/kboot
121 if [ "x${KBOOT_TIMEOUT}" = "x" ] ; then KBOOT_TIMEOUT=5 ; fi
123 if [ "x${KBOOT_DISTRIBUTOR}" = "x" ] ; then
126 OS="${KBOOT_DISTRIBUTOR} GNU/Linux"
129 # These are optional, user-defined variables.
130 export KBOOT_TIMEOUT \
132 KBOOT_CMDLINE_LINUX \
133 KBOOT_CMDLINE_LINUX_DEFAULT \
134 KBOOT_DISABLE_RECOVERY
136 if test "x${kboot_conf}" != "x"; then
137 rm -f ${kboot_conf}.new
138 exec > ${kboot_conf}.new
140 echo "Generating kboot.conf ..." >&2
144 # DO NOT EDIT THIS FILE
146 # It is automatically generated by $self
147 # with settings from ${sysconfdir}/default/kboot
150 timeout=${KBOOT_TIMEOUT}
154 echo "### BEGIN list of kernels ###"
156 echo "### END list of kernels ###"
158 if test "x${kboot_conf}" != "x" ; then
159 # none of the children aborted with error, install the new kboot.cfg
160 mv -f ${kboot_conf}.new ${kboot_conf}