2008-07-29 Christian Franke <franke@computer.org>

* util/update-grub_lib.in (make_system_path_relative_to_its_root):
	Add conversion of emulated mount points on Cygwin.
This commit is contained in:
chrfranke 2008-07-29 16:47:31 +00:00
parent b609876d15
commit 2921d33798
2 changed files with 21 additions and 1 deletions

View file

@ -1,3 +1,8 @@
2008-07-29 Christian Franke <franke@computer.org>
* util/update-grub_lib.in (make_system_path_relative_to_its_root):
Add conversion of emulated mount points on Cygwin.
2008-07-29 Christian Franke <franke@computer.org>
* util/update-grub.in: Add a check for admin

View file

@ -68,7 +68,22 @@ make_system_path_relative_to_its_root ()
dir=""
fi
echo $path | sed -e "s,^$dir,,g"
# XXX: This fails if $dir contains ','.
path=`echo "$path" | sed -e "s,^$dir,,g"` || return 1
case "`uname 2>/dev/null`" in
CYGWIN*)
# Cygwin: Check if regular or emulated mount.
if [ -z "$dir" ] || [ "`stat -c %D "$dir/.."`" != 620000 ] ; then
# Reached some mount point not below /cygdrive.
# GRUB does not know Cygwin's emulated mounts,
# convert to Win32 path and remove drive letter.
path=`cygpath -m "$path" | sed -n 's,^[A-Za-z]:,,p'`
test ! -z "$path" || return 1
fi ;;
esac
echo "$path"
}
is_path_readable_by_grub ()