1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50
|
#!/bin/sh
if [ ! -x /usr/sbin/phpquery ]; then
echo "php-defaults must be installed"
exit 1
fi
if ! command -v xml2 >/dev/null; then
echo "xml2 must be installed"
fi
for ver in $(/usr/sbin/phpquery -V); do
min_ver=
max_ver=
for package_xml in "package-${ver}.xml" "package-$(echo "${ver}" | cut -f 1 -d .).xml" package.xml; do
if [ -f "$package_xml" ]; then
break
fi
package_xml=
done
if [ -n "${package_xml}" ]; then
min_ver=$(xml2 <"${package_xml}" | sed -ne "s,^/package/dependencies/required/php/min=\([0-9]\+\.[0-9]\+\.[0-9]\+\),\1,p")
max_ver=$(xml2 <"${package_xml}" | sed -ne "s,^/package/dependencies/required/php/max=\([0-9]\+\.[0-9]\+\.[0-9]\+\).*,\1,p")
else
min_ver=$(sed -ne 's/X-PHP-Versions: //p' debian/control | tr -s " " "\n" | sort -n | head -1)
if [ -n "$min_ver" ]; then
min_ver="${min_ver}.0"
fi
max_ver=$(sed -ne 's/X-PHP-Versions: //p' debian/control | tr -s " " "\n" | sort -n | tail -1)
if [ -n "$max_ver" ]; then
max_ver="${max_ver}.99"
fi
fi
if [ -z "$min_ver" ]; then
continue
fi
if [ -n "$min_ver" ] && dpkg --compare-versions "${ver}.0" lt "$min_ver"; then
continue
fi
if [ -n "$max_ver" ] && dpkg --compare-versions "${ver}.0" ge "$max_ver"; then
continue
fi
echo "${ver}"
done
exit 0
|