81 lines
1.5 KiB
Bash
Executable File
81 lines
1.5 KiB
Bash
Executable File
#!/bin/sh
|
|
|
|
BDIR=$1
|
|
ADIR=$2
|
|
IN="$3"
|
|
OUT="$4"
|
|
|
|
echo "DONEDONE" > $BDIR/DONE
|
|
awk -v max_size=$MAX_PKG_SIZE '
|
|
/^Package:/ {
|
|
srcname=$2
|
|
srcs_done++
|
|
}
|
|
|
|
/^Section: non-free/ {
|
|
component[srcname]="non-free"
|
|
next
|
|
}
|
|
|
|
/^Section: non-free-firmware/ {
|
|
component[srcname]="non-free-firmware"
|
|
next
|
|
}
|
|
|
|
/^Section: contrib/ {
|
|
component[srcname]="contrib"
|
|
next
|
|
}
|
|
|
|
/^Section:/ {
|
|
component[srcname]="main"
|
|
next
|
|
}
|
|
|
|
/^DONEDONE/ {
|
|
parsed=1
|
|
next
|
|
}
|
|
|
|
/^Files:/ {
|
|
in_files = 1
|
|
next
|
|
}
|
|
/^ / {
|
|
if (in_files) {
|
|
size[srcname]+=$2
|
|
next
|
|
}
|
|
}
|
|
|
|
/.*/ {
|
|
in_files = 0
|
|
if (parsed) {
|
|
if (size[$0] > max_size) {
|
|
printf("source:%s:%s-SRCTOOBIG\n", component[$0], $0)
|
|
} else {
|
|
printf("source:%s:%s\n", component[$0], $0)
|
|
}
|
|
}
|
|
}
|
|
' $ADIR/$CODENAME-source/apt-state/lists/*Sources $BDIR/DONE $IN > $BDIR/list.mid
|
|
|
|
if [ "$NONFREE"x = "1"x ] ; then
|
|
grep -v SRCTOOBIG $BDIR/list.mid > $OUT
|
|
else
|
|
grep -v \
|
|
-e :non-free: \
|
|
-e :non-free-firmware: \
|
|
-e SRCTOOBIG $BDIR/list.mid > $OUT
|
|
fi
|
|
|
|
if [ "$EXTRANONFREE"x = "1"x ] ; then
|
|
for COMPONENT in $NONFREE_COMPONENTS; do
|
|
grep :"$COMPONENT": $BDIR/list.mid | grep -v SRCTOOBIG >> $OUT
|
|
done
|
|
fi
|
|
|
|
awk -F : '
|
|
/SRCTOOBIG/ { print $3 }
|
|
' $BDIR/list.mid > $BDIR/sourcetoobig
|