#! @BUILD_SHEBANG@
# Copyright (C) 2013  Free Software Foundation, Inc.
#
# GRUB is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# GRUB is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with GRUB.  If not, see <http://www.gnu.org/licenses/>.

set -e
grubshell=@builddir@/grub-shell

. "@builddir@/grub-core/modinfo.sh"

disk=hda
indisk=ata0

case "${grub_modinfo_target_cpu}-${grub_modinfo_platform}" in
    # PLATFORM: Don't mess with real devices when OS is active
    *-emu)
	exit 0;;
    # PLATFORM: no ATA on ARC platforms (they use SCSI)
    *-arc)
	exit 0;;
    # FIXME: No native drivers are available for those
    powerpc-ieee1275 | sparc64-ieee1275 | arm*-efi)
	exit 0;;
    i386-ieee1275)
	disk=hdb
	indisk=ata1
	;;
esac

imgfile="`mktemp "${TMPDIR:-/tmp}/tmp.XXXXXXXXXX"`" || exit 1
outfile="`mktemp "${TMPDIR:-/tmp}/tmp.XXXXXXXXXX"`" || exit 1

echo "hello" > "$outfile"

tar cf "$imgfile" "$outfile"

if [ "$(echo "nativedisk; source '($indisk)/$outfile';" | "${grubshell}" --qemu-opts="-$disk $imgfile")" != "Hello World" ]; then
   rm "$imgfile"
   rm "$outfile"
   exit 1
fi

rm "$imgfile"
rm "$outfile"
