Хранилища Subversion ant

Редакция

Редакция 464 | Авторство | Сравнить с предыдущей | Последнее изменение | Открыть журнал | Скачать | RSS

filesdir="/root/nix-files/apt-scan-files"
sql="sqlite"
db="$filesdir/apt.db"

rm $db
$sql $db "CREATE TABLE reps (id INTEGER PRIMARY KEY, rep VARCHAR)"
$sql $db "CREATE TABLE dists (id INTEGER PRIMARY KEY, dist VARCHAR)"
$sql $db "CREATE TABLE sects (id INTEGER PRIMARY KEY, sect VARCHAR)"
$sql $db "CREATE TABLE reps2dists (id INTEGER PRIMARY KEY, rep_id INTEGER KEY, dist_id INTEGER KEY)"
$sql $db "CREATE TABLE reps2dists2sects (id INTEGER PRIMARY KEY, reps2dists_id INTEGER KEY, sect_id INTEGER KEY)"

cat $filesdir/dists.lst | grep -v "debian-installer" | while read LINE
do
    eval "$(echo $LINE | sed 's,\([^/]*\)/dists/\(.*\)/\([^/]*\)$, rep="\1" ; dist="\2"; sect="\3";,i')"
    for part in rep dist sect
    do
        eval cval=\$$part;
        parts=$part's'
       
        id_current="$($sql $db "SELECT id FROM $parts WHERE $part='$cval'")";
       
        if [ "$id_current" == "" ]; then
            echo Adding $part $cval;
            $sql $db "INSERT INTO $parts VALUES (NULL,'$cval')";
        id_current="$($sql $db "SELECT id FROM $parts WHERE $part='$cval'")";
        fi;
        eval id_$part=$id_current
    done
   
    id_current="$($sql $db "SELECT id FROM reps2dists WHERE rep_id=$id_rep AND dist_id=$id_dist")";
    if [ "$id_current" == "" ]; then
        echo Adding r2d $id_rep $id_dist;
        $sql $db "INSERT INTO reps2dists VALUES (NULL, $id_rep, $id_dist)";
    fi;
    id_current="$($sql $db "SELECT id FROM reps2dists WHERE rep_id=$id_rep AND dist_id=$id_dist")";
        echo Adding r2d2s $id_current $id_sect;
        $sql $db "INSERT INTO reps2dists2sects VALUES (NULL, $id_current, $id_sect)";
done