From 9ee5154685e24bd588ae792af1e285e06a1f9dfc Mon Sep 17 00:00:00 2001 From: Julian Andres Klode Date: Sat, 6 Aug 2016 03:50:54 +0200 Subject: vendor/getinfo: Provide command to determine vendor to use Introduce the 'current' command to eventually replace the current symbolic link. The current command does roughly the same as the makefile, the code has just been cleaned up a bit to work better as a shell function. Gbp-Dch: ignore --- vendor/getinfo | 40 +++++++++++++++++++++++++++++++++++++++- 1 file changed, 39 insertions(+), 1 deletion(-) (limited to 'vendor/getinfo') 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 -- cgit v1.2.3 From f7a46d97368044e8a69f5a51067b5a0e12241d42 Mon Sep 17 00:00:00 2001 From: Julian Andres Klode Date: Sat, 6 Aug 2016 20:16:38 +0200 Subject: vendor/getinfo: Teach it about sourceslist-list-format This makes it easier to write a generic subsitution tool for handling substitutions in apt-key.in and sources.list.in Gbp-Dch: ignore --- vendor/getinfo | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'vendor/getinfo') diff --git a/vendor/getinfo b/vendor/getinfo index 4f94d7c42..504b086af 100755 --- a/vendor/getinfo +++ b/vendor/getinfo @@ -58,7 +58,7 @@ case "$1" in debian-stable-codename|debian-oldstable-codename|debian-testing-codename|ubuntu-codename) getrawfield "$1" "$VERBATIM" ;; -keyring-package|keyring-filename|keyring-master-filename|keyring-removed-filename|keyring-uri|current-codename) +sourceslist-list-format|keyring-package|keyring-filename|keyring-master-filename|keyring-removed-filename|keyring-uri|current-codename) exec $0 'vendor' "$@" ;; vendor) -- cgit v1.2.3 From 79635b696b1ca113d0527d4afe96908eada5cc48 Mon Sep 17 00:00:00 2001 From: Julian Andres Klode Date: Sun, 7 Aug 2016 03:32:12 +0200 Subject: vendor/getinfo: Accept --vendor VENDOR option This can be used to query a field for a specific vendor. It also speeds up things a lot if we can cache the current vendor in cmake and pass it to further getinfo invocations. Gbp-Dch: ignore --- vendor/getinfo | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) (limited to 'vendor/getinfo') diff --git a/vendor/getinfo b/vendor/getinfo index 504b086af..37e0c1480 100755 --- a/vendor/getinfo +++ b/vendor/getinfo @@ -36,7 +36,13 @@ getcurrent() { return 0 } -INFO="$(readlink -f "${BASEDIR}/$(getcurrent)/apt-vendor.ent")" +if [ "$1" = "--vendor" ]; then + CURRENT_VENDOR="$2" + shift 2 +else + CURRENT_VENDOR=$(getcurrent) +fi +INFO="$(readlink -f "${BASEDIR}/$CURRENT_VENDOR/apt-vendor.ent")" VERBATIM="${BASEDIR}/../doc/apt-verbatim.ent" if [ -z "$INFO" ] || [ ! -e "$INFO" ]; then @@ -59,7 +65,7 @@ debian-stable-codename|debian-oldstable-codename|debian-testing-codename|ubuntu- getrawfield "$1" "$VERBATIM" ;; sourceslist-list-format|keyring-package|keyring-filename|keyring-master-filename|keyring-removed-filename|keyring-uri|current-codename) - exec $0 'vendor' "$@" + exec $0 --vendor $CURRENT_VENDOR 'vendor' "$@" ;; vendor) getfield "$2" @@ -67,9 +73,8 @@ vendor) verbatim) getfield "$2" "$VERBATIM" ;; - current) - getcurrent + echo $CURRENT_VENDOR ;; *) echo >&2 "Unknown data field $1 requested" -- cgit v1.2.3