提交 99de28a7 编写于 作者: A Ansgar Burchardt

config/*/dinstall.functions: use files_archive_map instead of location

上级 58fc1503
......@@ -263,8 +263,20 @@ function mkfilesindices() {
ARCHLIST=$(tempfile)
log "Querying postgres"
local query='SELECT l.path, f.filename, a.arch_string FROM location l JOIN files f ON (f.location = l.id) LEFT OUTER JOIN (binaries b JOIN architecture a ON (b.architecture = a.id)) ON (f.id = b.file)'
psql -At -c "$query" | sed 's/|//;s,^/srv/ftp-master.debian.org/ftp,.,' | sort >$ARCHLIST
local query="
SELECT CONCAT('./pool/', c.name, '/', f.filename) AS path, a.arch_string AS arch_string
FROM files f
JOIN files_archive_map af ON f.id = af.file_id
JOIN component c ON af.component_id = c.id
JOIN archive ON af.archive_id = archive.id
LEFT OUTER JOIN
(binaries b
JOIN architecture a ON b.architecture = a.id)
ON f.id = b.file
WHERE archive.name = 'ftp-master'
ORDER BY path, arch_string
"
psql -At -c "$query" >$ARCHLIST
includedirs () {
perl -ne 'print; while (m,/[^/]+$,) { $_=$`; print $_ . "\n" unless $d{$_}++; }'
......@@ -297,11 +309,37 @@ function mkfilesindices() {
log "Generating suite lists"
suite_list () {
local query
query="$(printf 'SELECT DISTINCT l.path, f.filename FROM (SELECT sa.source AS source FROM src_associations sa WHERE sa.suite = %d UNION SELECT b.source AS source FROM bin_associations ba JOIN binaries b ON (ba.bin = b.id) WHERE ba.suite = %d) s JOIN dsc_files df ON (s.source = df.source) JOIN files f ON (df.file = f.id) JOIN location l ON (f.location = l.id)' $1 $1)"
local suite_id="$(printf %d $1)"
local query
query="
SELECT DISTINCT CONCAT('./pool/', c.name, '/', f.filename)
FROM
(SELECT sa.source AS source
FROM src_associations sa
WHERE sa.suite = $suite_id
UNION
SELECT b.source AS source
FROM bin_associations ba
JOIN binaries b ON ba.bin = b.id WHERE ba.suite = $suite_id) s
JOIN dsc_files df ON s.source = df.source
JOIN files f ON df.file = f.id
JOIN files_archive_map af ON f.id = af.file_id
JOIN component c ON af.component_id = c.id
JOIN archive ON af.archive_id = archive.id
WHERE archive.name = 'ftp-master'
"
psql -F' ' -A -t -c "$query"
query="$(printf 'SELECT l.path, f.filename FROM bin_associations ba JOIN binaries b ON (ba.bin = b.id) JOIN files f ON (b.file = f.id) JOIN location l ON (f.location = l.id) WHERE ba.suite = %d' $1)"
query="
SELECT CONCAT('./pool/', c.name, '/', f.filename)
FROM bin_associations ba
JOIN binaries b ON ba.bin = b.id
JOIN files f ON b.file = f.id
JOIN files_archive_map af ON f.id = af.file_id
JOIN component c ON af.component_id = c.id
JOIN archive ON af.archive_id = archive.id
WHERE ba.suite = $suite_id AND archive.name = 'ftp-master'
"
psql -F' ' -A -t -c "$query"
}
......@@ -316,7 +354,7 @@ function mkfilesindices() {
[ "$(readlink $distdir)" != "$distname" ] || echo $distdir
done
)
suite_list $id | tr -d ' ' | sed 's,^/srv/ftp-master.debian.org/ftp,.,'
suite_list $id
) | sort -u | gzip -9 > suite-${suite}.list.gz
done
......
......@@ -246,8 +246,20 @@ function mkfilesindices() {
ARCHLIST=$(tempfile)
log "Querying postgres"
local query='SELECT l.path, f.filename, a.arch_string FROM location l JOIN files f ON (f.location = l.id) LEFT OUTER JOIN (binaries b JOIN architecture a ON (b.architecture = a.id)) ON (f.id = b.file)'
psql -At -c "$query" | sed 's/|//;s,^/srv/ftp-master.debian.org/ftp,.,' | sort >$ARCHLIST
local query="
SELECT CONCAT('./pool/', c.name, '/', f.filename) AS path, a.arch_string AS arch_string
FROM files f
JOIN files_archive_map af ON f.id = af.file_id
JOIN component c ON af.component_id = c.id
JOIN archive ON af.archive_id = archive.id
LEFT OUTER JOIN
(binaries b
JOIN architecture a ON b.architecture = a.id)
ON f.id = b.file
WHERE archive.name = 'ftp-master'
ORDER BY path, arch_string
"
psql -At -c "$query" >$ARCHLIST
includedirs () {
perl -ne 'print; while (m,/[^/]+$,) { $_=$`; print $_ . "\n" unless $d{$_}++; }'
......@@ -280,11 +292,37 @@ function mkfilesindices() {
log "Generating suite lists"
suite_list () {
local suite_id="$(printf %d $1)"
local query
query="$(printf 'SELECT DISTINCT l.path, f.filename FROM (SELECT sa.source AS source FROM src_associations sa WHERE sa.suite = %d UNION SELECT b.source AS source FROM bin_associations ba JOIN binaries b ON (ba.bin = b.id) WHERE ba.suite = %d) s JOIN dsc_files df ON (s.source = df.source) JOIN files f ON (df.file = f.id) JOIN location l ON (f.location = l.id)' $1 $1)"
query="
SELECT DISTINCT CONCAT('./pool/', c.name, '/', f.filename)
FROM
(SELECT sa.source AS source
FROM src_associations sa
WHERE sa.suite = $suite_id
UNION
SELECT b.source AS source
FROM bin_associations ba
JOIN binaries b ON ba.bin = b.id WHERE ba.suite = $suite_id) s
JOIN dsc_files df ON s.source = df.source
JOIN files f ON df.file = f.id
JOIN files_archive_map af ON f.id = af.file_id
JOIN component c ON af.component_id = c.id
JOIN archive ON af.archive_id = archive.id
WHERE archive.name = 'ftp-master'
"
psql -F' ' -A -t -c "$query"
query="$(printf 'SELECT l.path, f.filename FROM bin_associations ba JOIN binaries b ON (ba.bin = b.id) JOIN files f ON (b.file = f.id) JOIN location l ON (f.location = l.id) WHERE ba.suite = %d' $1)"
query="
SELECT CONCAT('./pool/', c.name, '/', f.filename)
FROM bin_associations ba
JOIN binaries b ON ba.bin = b.id
JOIN files f ON b.file = f.id
JOIN files_archive_map af ON f.id = af.file_id
JOIN component c ON af.component_id = c.id
JOIN archive ON af.archive_id = archive.id
WHERE ba.suite = $suite_id AND archive.name = 'ftp-master'
"
psql -F' ' -A -t -c "$query"
}
......@@ -299,7 +337,7 @@ function mkfilesindices() {
[ "$(readlink $distdir)" != "$distname" ] || echo $distdir
done
)
suite_list $id | tr -d ' ' | sed 's,^/srv/ftp-master.debian.org/ftp,.,'
suite_list $id
) | sort -u | gzip -9 > suite-${suite}.list.gz
done
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册