Index: user/cperciva/portsnap-build/s/fileset-findnew.sh =================================================================== --- user/cperciva/portsnap-build/s/fileset-findnew.sh (revision 338223) +++ user/cperciva/portsnap-build/s/fileset-findnew.sh (revision 338224) @@ -1,36 +1,36 @@ #!/bin/sh -e # No user-serviceable parts if [ -z "$PORTSNAP_BUILD_CONF_READ" ]; then echo "Do not run $0 manually" exit 1 fi # usage: sh -e fileset-findnew.sh FSETDIR INDEX tINDEX TMP FSETDIR="$1" INDEX="$2" tINDEX="$3" TMP="$4" # Report progress echo "`date`: Identifying new files" # Find new port tarballs sort -k 3,3 -t '|' ${FSETDIR}/filedb > ${TMP}/filedb.sorted sort -k 2,2 -t '|' ${INDEX} | - join -1 3 -2 2 -t '|' -v 2 ${TMP}/filedb.sorted - | + join -1 3 -2 2 -t '|' -v 2 -o 2.1,2.2 ${TMP}/filedb.sorted - | sort -k 1,1 -t '|' > ${FSETDIR}/filedb.news # Report new files echo "New files:" cut -f 1 -d '|' < ${FSETDIR}/filedb.news | lam -s ' ' - # Find new metadata files sort -k 3,3 -t '|' ${FSETDIR}/metadb > ${TMP}/metadb.sorted sort -k 2,2 -t '|' ${tINDEX} | - join -1 3 -2 2 -t '|' -v 2 ${TMP}/metadb.sorted - | + join -1 3 -2 2 -t '|' -v 2 -o 2.1,2.2 ${TMP}/metadb.sorted - | sort -k 1,1 -t '|' > ${FSETDIR}/metadb.news # Clean up temporary files rm ${TMP}/filedb.sorted ${TMP}/metadb.sorted Index: user/cperciva/portsnap-build/s/fileset-mergedb.sh =================================================================== --- user/cperciva/portsnap-build/s/fileset-mergedb.sh (revision 338223) +++ user/cperciva/portsnap-build/s/fileset-mergedb.sh (revision 338224) @@ -1,45 +1,45 @@ #!/bin/sh -e # No user-serviceable parts if [ -z "$PORTSNAP_BUILD_CONF_READ" ]; then echo "Do not run $0 manually" exit 1 fi # usage: sh -e fileset-mergedb.sh FSETDIR SNAPDATE INDEX tINDEX TMP FSETDIR="$1" SNAPDATE="$2" INDEX="$3" tINDEX="$4" TMP="$5" # Report progress echo "`date`: Updating databases" # The filedb and metadb files contain lines of the form # FILENAME|TIMESTAMP|HASH # where TIMESTAMP is the *most recent* SNAPDATE for which the data # associated with FILENAME is HASH.gz (and has SHA256 hash HASH). # We use this to tell us which binary patches to generate, which # also tells us which old data files to keep around; the mirrors # use this to prune the data they publihsh and figure out which # metadata patches they should generate. # Update filedb using INDEX sed -e "s/|/|${SNAPDATE}|/" ${INDEX} | sort -k 3,3 -t '|' > ${TMP}/new.dated sort -k 3,3 -t '|' ${FSETDIR}/filedb | - join -1 3 -2 3 -t '|' -v 1 - ${TMP}/new.dated | + join -1 3 -2 3 -t '|' -v 1 -o 1.1,1.2,1.3 - ${TMP}/new.dated | sort -k 1,1 -t '|' - ${TMP}/new.dated > ${FSETDIR}/filedb.tmp mv ${FSETDIR}/filedb.tmp ${FSETDIR}/filedb # Update metadb using tINDEX sed -e "s/|/|${SNAPDATE}|/" ${tINDEX} | sort -k 3,3 -t '|' > ${TMP}/new.dated sort -k 3,3 -t '|' ${FSETDIR}/metadb | - join -1 3 -2 3 -t '|' -v 1 - ${TMP}/new.dated | + join -1 3 -2 3 -t '|' -v 1 -o 1.1,1.2,1.3 - ${TMP}/new.dated | sort -k 1,1 -t '|' - ${TMP}/new.dated > ${FSETDIR}/metadb.tmp mv ${FSETDIR}/metadb.tmp ${FSETDIR}/metadb # Clean up rm ${TMP}/new.dated