archive: Fix index links to files in non-main pool directories
authorChristoph Berg <myon@debian.org>
Fri, 19 May 2023 15:21:25 +0000 (15:21 +0000)
committerChristoph Berg <myon@debian.org>
Fri, 19 May 2023 15:21:25 +0000 (15:21 +0000)
We show all files in pool/main/p/$package even if some of the files are
located in pool/NN.

repo/bin/generate-archive-lists

index 650fe9d7e0af89160bed371e08f295d9bd8bfa63..9759cd75dfc1b549e4d49e18e6bc50d16b882ed8 100755 (executable)
@@ -77,17 +77,18 @@ for PACKAGE in $PACKAGES; do
     *)    INITIAL="$(echo $PACKAGE | cut -c 1)" ;;
   esac
   DIRECTORY="pool/main/$INITIAL/$PACKAGE"
-  QUERY="SELECT sf.filename, NULL::text AS size, s.time
+
+  QUERY="SELECT c->>'directory' || '/' || sf.filename AS path, sf.filename, NULL::text AS size, s.time
     FROM source s
     JOIN sourcefile sf ON (s.source, s.srcversion) = (sf.source, sf.srcversion)
     WHERE s.source = '$PACKAGE'
-  UNION ALL SELECT regexp_replace(p.c->>'filename', '.*/', ''), p.c->>'size', p.time
+  UNION ALL SELECT p.c->>'filename', regexp_replace(p.c->>'filename', '.*/', ''), p.c->>'size', p.time
     FROM package p
     WHERE p.source = '$PACKAGE'
   ORDER BY filename"
   FORMAT="WITH q AS ($QUERY)
-    SELECT format(E'<a href=\"%s\">%s</a> %s %s <br /> \\n',
-      regexp_replace(filename, '\\+', '%2B', 'g'),
+    SELECT format(E'<a href=\"/pub/repos/apt/%s\">%s</a> %s %s <br /> \\n',
+      regexp_replace(path, '\\+', '%2B', 'g'),
       filename,
       time,
       size || ' bytes')