#!/bin/sh

####################
#    Copyright (C) 2009 by Raphael Geissert <atomo64@gmail.com>
#
#
#    This file is free software: you can redistribute it and/or modify
#    it under the terms of the GNU General Public License as published by
#    the Free Software Foundation, either version 2 of the License, or
#    (at your option) any later version.
#
#    This file is distributed in the hope that it will be useful,
#    but WITHOUT ANY WARRANTY; without even the implied warranty of
#    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
#    GNU General Public License for more details.
#
#    You should have received a copy of the GNU General Public License
#    along with this file.  If not, see <http://www.gnu.org/licenses/>.
####################

set -e

if [ -z "$1" ]; then
    printf "Usage: %s path/to/lintian/data\n" \
        "$(basename "$0")"
    exit 0
fi

export LC_ALL=C

dpkg_version="$(dpkg-architecture --version | head -n1)"

### Architectures list ###

f="$(mktemp)"

cat > "$f" <<EOF
# List of known architectures as provided by dpkg-architecture
# Last updated: $(date -u +'%Y-%m-%d')
# With: $dpkg_version

EOF
{ echo "any"; echo "all";
  dpkg-architecture -L; } | sort >> "$f"

mv "$f" "$1"/fields/architectures


### Triplets list ###

f="$(mktemp)"

cat > "$f" <<EOF
# List of "triplet architecture" relationships as provided by
# dpkg-architecture
# Last updated: $(date -u +'%Y-%m-%d')
# With: $dpkg_version

EOF

{ # run this in a subshell to avoid multiple fd redirections
for arch in $(dpkg-architecture -L); do
    triplet="$(dpkg-architecture -a"$arch" -qDEB_HOST_MULTIARCH 2>/dev/null)"
    printf "%s %s\n" "$triplet" "$arch"
done
} | sort >> "$f"

mv "$f" "$1"/files/triplets

### Multiarch dirs ###

f="$(mktemp)"

cat > "$f" <<EOF
# List of "Multiarch dirs" relationships as provided by
# dpkg-architecture - arch -> dir mapping
# Last updated: $(date -u +'%Y-%m-%d')
# With: $dpkg_version

EOF

{ # run this in a subshell to avoid multiple fd redirections
for arch in $(dpkg-architecture -L); do
    triplet="$(dpkg-architecture -a"$arch" -qDEB_HOST_MULTIARCH 2>/dev/null)"
    printf "%s %s\n" "$arch" "$triplet"
done
} | sort >> "$f"

mv "$f" "$1"/binaries/multiarch-dirs
