diff options
| author | Mohammad Reza Karimi <m.r.karimi.j@gmail.com> | 2026-01-24 19:24:55 -0500 |
|---|---|---|
| committer | Mohammad Reza Karimi <m.r.karimi.j@gmail.com> | 2026-01-24 19:24:55 -0500 |
| commit | e2a70a92822b22633562e9695c300efec2b5cbeb (patch) | |
| tree | fbd1658be1ab5edb1470d9a8e4b758818cc7124c /paru | |
| parent | 4052357e021085bc1c761108446ee09a778ade15 (diff) | |
updates
Diffstat (limited to 'paru')
| -rw-r--r-- | paru/dot-config/ccache/ccache.conf | 4 | ||||
| -rw-r--r-- | paru/dot-config/paru/paru.conf | 11 | ||||
| -rwxr-xr-x | paru/dot-config/paru/patcher | 5 | ||||
| -rwxr-xr-x | paru/dot-local/bin/makepkg-smart | 51 |
4 files changed, 71 insertions, 0 deletions
diff --git a/paru/dot-config/ccache/ccache.conf b/paru/dot-config/ccache/ccache.conf new file mode 100644 index 0000000..c3c3cb7 --- /dev/null +++ b/paru/dot-config/ccache/ccache.conf @@ -0,0 +1,4 @@ +cache_dir = /home/moreka/.cache/ccache +max_size = 50G +compression = true +sloppiness = time_macros diff --git a/paru/dot-config/paru/paru.conf b/paru/dot-config/paru/paru.conf new file mode 100644 index 0000000..e0e68a8 --- /dev/null +++ b/paru/dot-config/paru/paru.conf @@ -0,0 +1,11 @@ +[options] +PgpFetch +Devel +Provides +DevelSuffixes = -git +BottomUp +KeepSrc + +[bin] +Makepkg = makepkg-smart +PreBuildCommand = ~/.config/paru/patcher diff --git a/paru/dot-config/paru/patcher b/paru/dot-config/paru/patcher new file mode 100755 index 0000000..a75b80f --- /dev/null +++ b/paru/dot-config/paru/patcher @@ -0,0 +1,5 @@ +#!/bin/sh + +case "$PKGBASE" in +*) ;; +esac diff --git a/paru/dot-local/bin/makepkg-smart b/paru/dot-local/bin/makepkg-smart new file mode 100755 index 0000000..e231d25 --- /dev/null +++ b/paru/dot-local/bin/makepkg-smart @@ -0,0 +1,51 @@ +#!/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 "$@" |
