#!/bin/bash echo "==> makepkg-smart: got input "$@"" >&2 DEFAULT_BUILDDIR="/tmp/makepkg" PERSIST_ROOT="$HOME/.cache/makepkg/build" KEEP_PKGS=" neovim-bundled-git " pkgname_from_pkgbuild() { local _pkgname pkgname pkgname="$(awk -F= '/^pkgname=/{gsub(/[()"]/,"",$2); print $2; exit}' PKGBUILD 2>/dev/null)" if echo "$pkgname" | grep -q "\$_pkgname" 2>/dev/null; then _pkgname="$(awk -F= '/^_pkgname=/{gsub(/[()"]/,"",$2); print $2; exit}' PKGBUILD 2>/dev/null)" echo "${pkgname//\$_pkgname/"$_pkgname"}" else echo "$pkgname" fi } PKGNAME="$(pkgname_from_pkgbuild)" [ -z "$PKGNAME" ] && exec makepkg "$@" KEEP=false for p in $KEEP_PKGS; do [ "$PKGNAME" = "$p" ] && KEEP=true && break done if $KEEP; then export BUILDDIR="$PERSIST_ROOT/$PKGNAME" mkdir -p "$BUILDDIR" export CC=gcc export CXX=g++ export CMAKE_C_COMPILER_LAUNCHER=ccache export CMAKE_CXX_COMPILER_LAUNCHER=ccache export CCACHE_DIR="$HOME/.cache/ccache" export CCACHE_BASEDIR="$PWD" export CCACHE_SLOPPINESS="time_macros" echo "==> makepkg-smart: using persistent BUILDDIR=$BUILDDIR with ccache" >&2 else export BUILDDIR="$DEFAULT_BUILDDIR" fi exec makepkg "$@"