# with all Pyshop-downloaded/uploaded files, SHA256 checksums,
# private package marks. Also it will call GoCheese's /simple/ API
# for forcing metainformation update (necessary for storing SHA256
-# checksums missing in Pyshop).
+# checksums missing in Pyshop). No metadata conversion is performed.
pkgname() {
perl -ne "s/[-_.]+/-/g ; print lc"
########################################################################
ctr=0
echo "
-SELECT package.name, release_file.filename
+SELECT package.name, release_file.filename, release_file.created_at
FROM release_file
JOIN release ON release.id = release_file.release_id
JOIN package ON release.package_id = package.id
[ $(( $ctr % 100 )) -ne 0 ] || echo $ctr $pkginfo
pkg=$(echo "$pkginfo" | cut -f1 | pkgname)
filename=$(echo "$pkginfo" | cut -f2)
+ created=$(echo "$pkginfo" | cut -f3 | sed "s/ /T/")
[ -n "$pkg" ]
[ -n "$filename" ]
src=$(echo $pkg | cut -c1)/$filename
[ -r $dst ] && continue || :
mkdir -p packages/$pkg
ln $src $dst
+ touch -d "$created" $dst
done
########################################################################
cd packages/$(echo $pkg | pkgname)
for f in * ; do sha256 < $f | xxd -r -p > $f.sha256 ; done
touch .internal
+ touch -r $f $f.sha256
cd ../..
done
########################################################################
cd packages
for pkg in * ; do
- # Assume gocheese -gpgupdate /gpgupdate/
+ # Assume running:
+ # GOCHEESE_NO_SYNC=1 gocheese -bind "[::1]:8080" -gpgupdate /gpgupdate/
curl http://localhost:8080/gpgupdate/$pkg/ > /dev/null
done
########################################################################
# Assure ckecksums are good
########################################################################
-gocheese -fsck
+gocheese -fsck packages