]> git.pld-linux.org Git - projects/pld-ftp-admin.git/blame - wwwbin/obsolete-check.sh
- skype-tools is noarch package
[projects/pld-ftp-admin.git] / wwwbin / obsolete-check.sh
CommitLineData
ed1ec331
ER
1#!/bin/sh
2# check for packages on ftp whose .spec does not exist (anymore)
3# this is extremely heavy on cvs server, so you run it once per month or so
4# Author: Elan Ruusamäe <glen@pld-linux.org>
5
6export LC_ALL=C
7ftpdir=$HOME/ftp
8wwwdir=$HOME/www
9CVSROOT=:pserver:cvs@cvs.pld-linux.org:/cvsroot
10d=$-
11
12orphaned_pkgs() {
13 set -$d
14 [ -s $t/pkgs.desc ] || /usr/bin/poldek --skip-installed "$@" --cmd "desc *" > $t/pkgs.desc
15 [ -s $t/pkgs.lst ] || sed -n 's/^Source package: \(.*\)-[^-]\+-[^-]\+$/\1/p' $t/pkgs.desc | sort -u > $t/pkgs.lst
16 # {w32codec,acroread,...}-installer pkgs
17 sed -i -e 's,-installer$,,' $t/pkgs.lst
18 for pkg in $(cat $t/pkgs.lst); do
19 # use awk to match package without any regexp fuzz
20 awk -vpkg=$pkg.spec -vm=1 '$1 == pkg{m=0} END{exit m}' $t/cvs.lst || echo Obsolete: $pkg
21 done
22}
23
24# generate list of .specs on ftp. needs cvsnt client
25cvs_pkgs() {
26 set -$d
27 [ -s $t/cvs.raw ] || cvs -d $CVSROOT -Q ls -e packages > $t/cvs.raw 2>/dev/null
28 [ -s $t/cvs.dirs ] || awk -F/ '$1 == "D" { print $2 } ' $t/cvs.raw > $t/cvs.dirs
29 [ -s $t/cvs.specs ] || {
30 while read pkg; do
31 cvs -d $CVSROOT -Q ls -e packages/$pkg/$pkg.spec 2>/dev/null
32 done < $t/cvs.dirs > $t/cvs.lst.tmp && mv $t/cvs.lst.tmp $t/cvs.specs
33 }
34 [ -s $t/cvs.lst ] || awk -F/ '$1 == "" { print $2 } ' $t/cvs.specs > $t/cvs.lst
35}
36
37
38set -e
39t=$(mktemp -d)
40#t=/home/pld/admins/th/tmp/tmp.KOCrX7BtOy
41
42cvs_pkgs
43orphaned_pkgs -s $ftpdir/PLD/i686/RPMS/ -s $ftpdir/PLD/noarch/RPMS/ > $t/orphaned.txt && cat $t/orphaned.txt > $wwwdir/main-orphaned4.txt
44
45chmod 644 $wwwdir/*.txt
46#rm -rf $t
This page took 0.599931 seconds and 4 git commands to generate.