#!/bin/sh

# hack script

OUTDIR="$1"
REPO="$2"
REPOCOP_ARCH="$3"

if [ -z "$OUTDIR" ] || [ -z "$REPO" ]; then
    echo "$0: invalid arguments"
    exit 1
fi

if [ ! -e "$REPO/files/list/bin.list" ]; then
    echo "$0: not found $REPO/files/list/bin.list"
    exit 1
fi

mkdir -p "$OUTDIR"

get_sorted_list()
{
    local arch=$1
    awk '{if ($3 == "'$arch'") print $1}' "$REPO/files/list/bin.list" | sort -u > "$OUTDIR"/${arch}.sorted

}

get_sorted_list i586
get_sorted_list x86_64
get_sorted_list aarch64

case $REPOCOP_ARCH in
    i586)
	sort -m -u "$OUTDIR"/aarch64.sorted "$OUTDIR"/x86_64.sorted > "$OUTDIR"/i586.other
	comm -2 -3 "$OUTDIR"/i586.other "$OUTDIR"/i586.sorted > "$OUTDIR"/missing
	;;
    x86_64)
	sort -m -u "$OUTDIR"/aarch64.sorted "$OUTDIR"/i586.sorted > "$OUTDIR"/x86_64.other
	comm -2 -3 "$OUTDIR"/x86_64.other "$OUTDIR"/x86_64.sorted > "$OUTDIR"/missing
	;;
    aarch64)
	sort -m -u "$OUTDIR"/i586.sorted "$OUTDIR"/x86_64.sorted > "$OUTDIR"/aarch64.other
	comm -2 -3 "$OUTDIR"/aarch64.other "$OUTDIR"/aarch64.sorted > "$OUTDIR"/missing
	;;
esac
