Your IP : 216.73.216.48
#!/bin/sh
. /usr/share/os-prober/common.sh
set -e
partition="$1"
bootpart="$2"
mpoint="$3"
type="$4"
found_item=0
dequote () {
item="${1%\"}"
echo "${item#\"}"
}
recordstanza () {
if [ -n "$kernel" ]; then
# TODO: handle device=/partition= to find images
if ! [ -e "$mpoint/$kernel" ]; then
debug "cannot find $kernel; not recording"
return
fi
if [ "$initrd" ] && ! [ -e "$mpoint/$initrd" ]; then
debug "cannot find $initrd: not recording"
return
fi
if [ -z "$title" ]; then
title="$(basename "$kernel")"
fi
if [ "$read_only" ]; then
parameters="ro $parameters"
fi
if [ "$rootdev" ]; then
parameters="root=$rootdev $parameters"
fi
parameters="${parameters% }"
result "$rootpart:$bootpart:$title:$kernel:$initrd:$parameters"
found_item=1
title=
rootdev="$default_rootdev"
kernel="$default_kernel"
parameters="$default_parameters"
initrd="$default_initrd"
read_only="$default_read_only"
else
# Everything in the global options section set default values.
default_rootdev="$rootdev"
default_kernel="$kernel"
default_parameters="$parameters"
default_initrd="$initrd"
default_read_only="$read_only"
fi
}
parse_yaboot_conf () {
mpoint="$1"
rootpart="$2"
bootpart="$3"
IFS=" ="
while read line; do
debug "parsing: $line"
set -f
set -- $line
set +f
case "$1" in
root)
rootdev="$(dequote "$2")"
;;
image)
recordstanza
kernel="$(dequote "$2")"
;;
append)
shift 1
parameters="$(dequote "${line#append=}")"
;;
initrd)
initrd="$(dequote "$2")"
;;
label)
shift 1
title="$(dequote "$*")"
;;
alias)
shift 1
titlealias="$(dequote "$*")"
;;
read-only)
read_only=1
;;
esac
done
recordstanza
}
# Avoid failing if archdetect is missing (running outside d-i). This is
# suboptimal but will do for now.
if type archdetect >/dev/null 2>&1; then
case "`archdetect`" in
powerpc/powermac_newworld)
;;
powerpc/chrp*)
;;
*)
exit 1
;;
esac
fi
if [ -e "$mpoint/etc/yaboot.conf" ]; then
debug "parsing yaboot.conf"
parse_yaboot_conf "$mpoint" "$partition" "$bootpart" < "$mpoint/etc/yaboot.conf"
fi
if [ "$found_item" = 0 ]; then
exit 1
else
exit 0
fi