dotfiles/.ksh/porttools.ksh

146 lines
2.9 KiB
Bash

########################################################################
# OPENBSD PORT TOOLS
########################################################################
#
# CONFIGURATION
#
MAKE_JOBS=$(sysctl -n hw.ncpuonline)
FETCH_JOBS=12
CVSROOT=sdk@cvs.openbsd.org:/cvs
case $(hostname -s) in
x13) PKGOPT="-Dsnap"; ;;
openbsd) PKGOPT="-Dsnap"; ;;
esac
#
# ALIASES
#
# navigation
alias port-jump="_portjump"
# cleaning
alias port-sweep="_portsweep"
alias port-clean="_portclean"
# making
alias port-refake="_refake"
alias port-reinstall="_reinstall"
alias port-repackage="_repackage"
alias port-remake="_remake"
# checking
alias port-check="_portcheck"
alias port-lib-depends-check="_portlibcheck"
# source control
alias port-diff="_portdiff"
alias cvs-update="_cvsupdate"
alias cvs-update-all="_cvsupdateall"
#
# FUNCTIONS
#
_portsweep() {
find . \( -name "*.orig" \
-o -name "*.rej" \
-o -empty \
\) -delete
}
_portjump() {
[ -z $1 ] && exit 0
{
cd /usr/ports \
&& cd $1 \
|| cd */$1 \
|| cd */$1* \
|| cd */*$1 \
|| cd */*$1*
} 2>/dev/null
}
_remake() {
make clean=all
make -j$FETCH_JOBS fetch
make
}
_repackage() {
make clean=package
make package
}
_refake() {
rm -f pkg/*.orig
make clean=fake
make fake"
}
_reinstall() {
make reinstall"
}
_portdiff() {(
pwd | fgrep -q '/usr/ports/' || return 1
set -A N $(make show="PKGNAME EPOCH REVISION")
PN="${N[0]}${N[1]:+v${N[1]}}${N[2]:+p${N[2]}}"
PD=$(pwd | cut -d"/" -f4,5)
cd /usr/ports
cvs -d $CVSROOT diff -uNp "${PD}" > ~/diffs/${PN}.diff
echo ~/diffs/${PN}.diff
)}
_portclean() {(
set -x
cd /usr/ports
doas rm -rf pobj/* plist logs packages bulk update distfiles/*
mkdir -p plist logs packages bulk update
doas make fix-permissions
)}
_cvsupdate() {
doas -u sdk cvs -z1 -d $CVSROOT -q up -Pd -A
}
_cvsupdateall() {(
set -x
cd /usr/src && _cvsupdate
cd /usr/xenocara && _cvsupdate
cd /usr/ports && _cvsupdate
cd /usr/www && _cvsupdate
)}
# CVS
alias cvs-diff="doas -u sdk cvs -d $CVSROOT diff -uNp"
alias cvs-commit="doas -u sdk cvs -d $CVSROOT commit"
alias cvs-update="doas -u sdk cvs -z1 -d $CVSROOT -q up -Pd -A"
alias cvs-release="doas -u sdk cvs -d $CVSROOT release"
alias cvs-checkout="doas -u sdk cvs -z 1 -qd $CVSROOT checkout -P"
# PORTS
pmark() { pwd > /var/cache/pmark; }
p() { cd "$(</var/cache/pmark)"; }
pj() { cd "/usr/ports/$(portjump $1)"; }
po() { cd "$(</var/cache/pmark)" && cd "$(make show=WRKSRC)"; }
alias port-modgo-update='make MODGO_VERSION=latest modgo-gen-modules > modules.inc'
# DPB
proot-rebuild() {
doas proot -c /etc/proot.conf
doas chroot /home/dpb pkg_add -Dsnap ccache
}
alias proot-do="doas chroot /home/dpb/"
alias dpb-control="ssh openbsd.codevoid.de \"doas nc -U /usr/ports/logs/amd64/control-openbsd-*\""