aboutsummaryrefslogtreecommitdiff
path: root/paru
diff options
context:
space:
mode:
authorMohammad Reza Karimi <m.r.karimi.j@gmail.com>2026-01-24 19:24:55 -0500
committerMohammad Reza Karimi <m.r.karimi.j@gmail.com>2026-01-24 19:24:55 -0500
commite2a70a92822b22633562e9695c300efec2b5cbeb (patch)
treefbd1658be1ab5edb1470d9a8e4b758818cc7124c /paru
parent4052357e021085bc1c761108446ee09a778ade15 (diff)
updates
Diffstat (limited to 'paru')
-rw-r--r--paru/dot-config/ccache/ccache.conf4
-rw-r--r--paru/dot-config/paru/paru.conf11
-rwxr-xr-xparu/dot-config/paru/patcher5
-rwxr-xr-xparu/dot-local/bin/makepkg-smart51
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 "$@"