mirror of
https://github.com/outbackdingo/ports.git
synced 2026-01-27 18:20:07 +00:00
123 lines
2.5 KiB
Bash
Executable File
123 lines
2.5 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
msg() {
|
|
echo "$port: $@"
|
|
}
|
|
|
|
getdeps() {
|
|
# getdeps <portpath>
|
|
grep "^# depends[[:blank:]]*:" $portpath/spkgbuild \
|
|
| sed 's/^# depends[[:blank:]]*:[[:blank:]]*//' \
|
|
| tr ' ' '\n' \
|
|
| awk '!a[$0]++' \
|
|
| sed 's/,//'
|
|
}
|
|
|
|
verifyvar() {
|
|
for i in backup noextract source; do
|
|
grep -q ${i}=\"\" $portpath/spkgbuild && msg "please remove this empty variable: ${i}=\"\""
|
|
done
|
|
}
|
|
|
|
verifyfiles() {
|
|
[ -f $portpath/.pkgfiles ] || msg "'.pkgfiles' not exist, please generate it using 'pkgbuild -p'"
|
|
[ -f $portpath/.checksums ] || msg "'.checksums' not exist, please generate it using 'pkgbuild -g'"
|
|
}
|
|
|
|
verifythisisnotcrux() {
|
|
for i in PKGMK prt prt-get; do
|
|
grep -q "$i" $portpath/spkgbuild && msg "please remove CRUX stuff, this is not CRUX"
|
|
done
|
|
}
|
|
|
|
verifythisisnotarch() {
|
|
for i in pkgver pkgrel pkgdesc pkgdir srcdir; do
|
|
grep -q "$i" $portpath/spkgbuild && msg "please remove ARCH stuff, this is not ARCH"
|
|
done
|
|
}
|
|
|
|
verifyforbiddendir() {
|
|
[ -f $portpath/.pkgfiles ] || return
|
|
for i in \
|
|
usr/share/licenses/ \
|
|
usr/share/locale/ \
|
|
usr/share/doc/ \
|
|
usr/share/gtk-doc/ \
|
|
usr/doc/ \
|
|
usr/locale; do
|
|
grep -q ${i}$ $portpath/.pkgfiles && msg "please remove this forbidden directory: ${i}"
|
|
done
|
|
}
|
|
|
|
verifynotusedir() {
|
|
[ -f $portpath/.pkgfiles ] || return
|
|
for i in \
|
|
usr/local/ \
|
|
usr/etc/ \
|
|
usr/libexec/; do
|
|
grep -q ${i}$ $portpath/.pkgfiles && msg "this directory not use in venom: ${i}"
|
|
done
|
|
}
|
|
|
|
verifydeps() {
|
|
if [ "$(grep "^# depends[[:blank:]]*:" $portpath/spkgbuild)" ]; then
|
|
deps=$(getdeps)
|
|
[ "$deps" ] || {
|
|
msg "empty dependency"
|
|
return
|
|
}
|
|
for d in $deps; do
|
|
found=0
|
|
for r in $REPO; do
|
|
[ -f $PORTSDIR/$r/$d/spkgbuild ] && {
|
|
found=1
|
|
break
|
|
}
|
|
done
|
|
[ $found = 0 ] && msg "missing deps '$d'"
|
|
done
|
|
fi
|
|
}
|
|
|
|
verifypkgfiles() {
|
|
[ -f $portpath/.pkgfiles ] || return
|
|
. $portpath/spkgbuild
|
|
[ "$name-$version-$release" = "$(head -n1 $portpath/.pkgfiles)" ] || {
|
|
msg "looks like .pkgfiles outdated please regenerate .pkgfiles using 'pkgbuild -p'"
|
|
}
|
|
}
|
|
|
|
runverify() {
|
|
while [ $1 ]; do
|
|
portpath="$(realpath $1)"
|
|
port=${portpath##*/}
|
|
[ -f $portpath/spkgbuild ] || {
|
|
msg "looks like not a valid port"
|
|
shift; continue
|
|
}
|
|
verifydeps
|
|
verifyvar
|
|
verifyfiles
|
|
verifythisisnotcrux
|
|
verifythisisnotarch
|
|
verifyforbiddendir
|
|
verifynotusedir
|
|
verifypkgfiles
|
|
shift
|
|
done
|
|
}
|
|
|
|
PORTSDIR="$(dirname $(dirname $(realpath $0)))"
|
|
SCRIPTDIR="$(dirname $(realpath $0))"
|
|
REPO="core main multilib nonfree"
|
|
|
|
if [ $1 ]; then
|
|
runverify $@
|
|
else
|
|
for r in $REPO; do
|
|
runverify $PORTSDIR/$r/*
|
|
done
|
|
fi
|
|
|
|
exit 0
|