#!/bin/bash

set -e -o pipefail

DATE=$(date -u +%Y%m%d)
PREP_DIR=/staging/topo-v6.update-prep
TARGET_DIR="$PREP_DIR/targets"
PREFIX_DIR=/data/routing/routeviews6-prefix2as
PREFIX_LOG=$PREFIX_DIR/pfx2as-creation.log

mkdir -p $PREP_DIR || exit 1
mkdir -p $TARGET_DIR || exit 1

# remove old target files, filtered and unfiltered
find "$PREP_DIR" -type f -name '[0-9]*.targets*' -mtime +3 -delete

# combine the 7 most recent prefix files
cd $PREFIX_DIR
zcat $(tail -n 7 $PREFIX_LOG | cut -f 3) \
    | awk '{printf "%s/%s\n", $1, $2}' \
    | sort \
    | uniq \
    > "$PREP_DIR/$DATE.targets.unfiltered"

# filter the prefix list
grep -F -v . "$PREP_DIR/$DATE.targets.unfiltered" \
    | /usr/bin/ark-topo6-filter-prefixes \
    > "$TARGET_DIR/$DATE.targets" 2> "$PREP_DIR/$DATE.targets.errors"

# update symlink to point to the newest targets list
ln -snf "$TARGET_DIR/$DATE.targets" "$TARGET_DIR/latest-target"
