repo-add: fix eval and quote issues
eval was ugly and dirty, and bit us here. Instead, use a safer form of variable declaration to ensure quotes don't foil us in pkgdesc or any other fields. This fixes FS#10837. Signed-off-by: Dan McGee <dan@archlinux.org>
This commit is contained in:
parent
ea84819bbb
commit
eb1775e485
|
@ -151,19 +151,22 @@ db_write_entry()
|
||||||
"
|
"
|
||||||
|
|
||||||
# read info from the zipped package
|
# read info from the zipped package
|
||||||
local line
|
local line var val
|
||||||
for line in $(bsdtar -xOf "$pkgfile" .PKGINFO | \
|
for line in $(bsdtar -xOf "$pkgfile" .PKGINFO |
|
||||||
grep -v "^#" | sed 's|\(\w*\)\s*=\s*\(.*\)|\1="\2"|'); do
|
grep -v '^#' | sed 's|\(\w*\)\s*=\s*\(.*\)|\1 \2|'); do
|
||||||
eval "$line"
|
# bash awesomeness here- var is always one word, val is everything else
|
||||||
case "$line" in
|
var=${line%% *}
|
||||||
group=*) _groups="$_groups$group\n" ;;
|
val=${line#* }
|
||||||
depend=*) _depends="$_depends$depend\n" ;;
|
declare $var="$val"
|
||||||
backup=*) _backups="$_backups$backup\n" ;;
|
case "$var" in
|
||||||
license=*) _licenses="$_licenses$license\n" ;;
|
group) _groups="$_groups$group\n" ;;
|
||||||
replaces=*) _replaces="$_replaces$replaces\n" ;;
|
depend) _depends="$_depends$depend\n" ;;
|
||||||
provides=*) _provides="$_provides$provides\n" ;;
|
backup) _backups="$_backups$backup\n" ;;
|
||||||
conflict=*) _conflicts="$_conflicts$conflict\n" ;;
|
license) _licenses="$_licenses$license\n" ;;
|
||||||
optdepend=*) _optdepends="$_optdepends$optdepend\n" ;;
|
replaces) _replaces="$_replaces$replaces\n" ;;
|
||||||
|
provides) _provides="$_provides$provides\n" ;;
|
||||||
|
conflict) _conflicts="$_conflicts$conflict\n" ;;
|
||||||
|
optdepend) _optdepends="$_optdepends$optdepend\n" ;;
|
||||||
esac
|
esac
|
||||||
done
|
done
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue