#!/bin/sh set -e #set -x SRCBASE=~/public_debian PUBBASE=~/public_websites/debian.jones.dk #PUBTOSRC=../../public_debian pathsfromsuites() { case "$@" in all) suites_re="" ;; *) suites_re="\b\($(echo "$@" | sed 's/[[:space:]]\+/\\|/g')\)\b" ;; esac find $SRCBASE -type f -name HINTS -exec grep -q "^Sections:.*$suites_re" '{}' ';' -printf '%h\n' \ | sed "s,^$SRCBASE/,," } suitesfrompaths() { case "$@" in all) fullpaths="$SRCBASE" ;; *) fullpaths= for path in "$@"; do # TODO: rewrite to support spaces in directory names fullpaths="$fullpaths $SRCBASE/$path" done ;; esac find $fullpaths -type f -name HINTS -exec cat '{}' ';' \ | grep '^Sections:' \ | sed 's/^Sections://; s/[[:space:]]\+/ /g; s/^ //; s/ $//' \ | tr ' ' '\n' \ | sort -u } suites="$@" paths="$(pathsfromsuites "$suites")" #echo $paths; exit 0 #suitesfrompaths all; exit 0 for path in $paths; do package="$(basename "$path")" pool="$(echo $(dirname "$path") | sed 's,.*/pool-\([^/]\+\)/\?.*,\1,; s,-all$,,')" buildhost="$(echo $(dirname "$path") | sed 's,^\([^/]\+\)/pool-.*,\1,')" symlink_dir="$pool/$package" mkdir -p "$PUBBASE/pools/$symlink_dir" # ln -sf -T "../../../$PUBTOSRC/$path" "$PUBBASE/pools/$symlink_dir/$buildhost" ln -sf -T "$SRCBASE/$path" "$PUBBASE/pools/$symlink_dir/$buildhost" for suite in $(suitesfrompaths "$path"); do mkdir -p "$SRCBASE/suites/$suite/$symlink_dir" ln -sf -T "../../../../$path" "$SRCBASE/suites/$suite/$symlink_dir/$buildhost" done done srcdir="$SRCBASE/suites/sugar" pubdir="$PUBBASE/dists/sid/sugar/binary-amd64" mkdir -p "$pubdir" ( cd "$srcdir" && dpkg-scanpackages * /dev/null pools/ ) > "$pubdir/Packages" gzip -c "$pubdir/Packages" > "$pubdir/Packages.gz" bzip2 -c "$pubdir/Packages" > "$pubdir/Packages.bz2" pubdir="$PUBBASE/dists/sid/sugar/source" mkdir -p "$pubdir" ( cd "$srcdir" && dpkg-scansources * /dev/null pools/ ) > "$pubdir/Sources" gzip -c "$pubdir/Sources" > "$pubdir/Sources.gz" bzip2 -c "$pubdir/Sources" > "$pubdir/Sources.bz2" exit 0