diff options
Diffstat (limited to 'vendor/getinfo')
-rwxr-xr-x | vendor/getinfo | 40 |
1 files changed, 39 insertions, 1 deletions
diff --git a/vendor/getinfo b/vendor/getinfo index 79da83620..4f94d7c42 100755 --- a/vendor/getinfo +++ b/vendor/getinfo @@ -2,7 +2,41 @@ # small helper to extract information form *.ent files BASEDIR="$(readlink -f "$(dirname $0)")" -INFO="$(readlink -f "${BASEDIR}/current/apt-vendor.ent")" + +getcurrent() { + # search for an exact match to use the correct sources.list example + cd $BASEDIR + DISTROS="$(find -mindepth 1 -maxdepth 1 -type d | cut -d'/' -f 2)" + for DISTRO in $DISTROS; do + if dpkg-vendor --is $DISTRO; then + echo $DISTRO + return 0 + fi + done + + # if we haven't found a specific, look for a deriving + # we do ubuntu and debian last as those are the biggest families + # and would therefore potentially 'shadow' smaller families + # (especially debian as it sorts quiet early) + for DISTRO in $DISTROS; do + if [ "$DISTRO" = 'debian' -o "$DISTRO" = 'ubuntu' ]; then continue; fi + if dpkg-vendor --derives-from $DISTRO; then + echo $DISTRO + return 0 + fi + done + + # Do the ubuntu/debian dance we talked about + if dpkg-vendor --derives-from ubuntu; then + echo $DISTRO + return 0 + fi + + echo debian + return 0 +} + +INFO="$(readlink -f "${BASEDIR}/$(getcurrent)/apt-vendor.ent")" VERBATIM="${BASEDIR}/../doc/apt-verbatim.ent" if [ -z "$INFO" ] || [ ! -e "$INFO" ]; then @@ -33,6 +67,10 @@ vendor) verbatim) getfield "$2" "$VERBATIM" ;; + +current) + getcurrent + ;; *) echo >&2 "Unknown data field $1 requested" exit 2 |