diff options
author | Simon Parri <simonparri@ganzeria.com> | 2025-05-29 22:50:18 -0500 |
---|---|---|
committer | Simon Parri <simonparri@ganzeria.com> | 2025-05-29 22:56:18 -0500 |
commit | e40fcc145a5c99667e4369a17353a33cfa9b6ef9 (patch) | |
tree | 7536fbe0427a807e727473df2faca99f84d3064d /lib | |
parent | c8d2fe1d29ecee26f8a0e0ba00fccb587d520fd0 (diff) | |
download | nixos-config-e40fcc145a5c99667e4369a17353a33cfa9b6ef9.tar.gz nixos-config-e40fcc145a5c99667e4369a17353a33cfa9b6ef9.zip |
Move mkThinShim to new personal library
Diffstat (limited to 'lib')
-rw-r--r-- | lib/default.nix | 4 | ||||
-rw-r--r-- | lib/thin-shim.nix | 41 |
2 files changed, 45 insertions, 0 deletions
diff --git a/lib/default.nix b/lib/default.nix new file mode 100644 index 0000000..0f6f82b --- /dev/null +++ b/lib/default.nix @@ -0,0 +1,4 @@ +{ }: +{ + mkThinShim = import ./thin-shim.nix; +} diff --git a/lib/thin-shim.nix b/lib/thin-shim.nix new file mode 100644 index 0000000..a9f931b --- /dev/null +++ b/lib/thin-shim.nix @@ -0,0 +1,41 @@ +pkgs: +let + inherit (builtins) + map elem; + + inherit (pkgs) stdenv; +in +pkg: inst: +stdenv.mkDerivation { + pname = pkg.pname + "-shim"; + version = pkg.version; + nativeBuildInputs = [pkg]; + dontUnpack = true; + buildPhase = '' +if [ -d ${pkg}/bin ]; then + mkdir -p "$out/bin" + for exe in $(ls "${pkg}/bin/"); do + cat >"$out/bin/$exe" <<EOF +#!/bin/sh + +term=urxvt +which \$term >/dev/null 2>&1 || term=xterm + +if [ "\$DISPLAY" ]; then + \$term -e nix shell '${inst}' --command '$exe' \$* +else + nix shell '${inst}' --command '$exe' \$* +fi +EOF + chmod +x "$out/bin/$exe" + done +fi + +for dir in "share/applications" "share/icons"; do + if [ -d "${pkg}/$dir" ]; then + mkdir -p "$out/$dir" + cp -a "${pkg}/$dir/"* "$out/$dir" + fi +done +''; +} |