From b30056ca448a8579d05c8eec11964c1a46ee5740 Mon Sep 17 00:00:00 2001 From: NullBite Date: Thu, 15 Feb 2024 19:48:52 +0100 Subject: [PATCH] Add wrapped `atool` with every archiver --- pkgs/atool-wrapped/default.nix | 36 ++++++++++++++++++++++++++++++++++ pkgs/cofi/shell.nix | 16 +++++++++++++++ pkgs/default.nix | 1 + 3 files changed, 53 insertions(+) create mode 100644 pkgs/atool-wrapped/default.nix create mode 100644 pkgs/cofi/shell.nix diff --git a/pkgs/atool-wrapped/default.nix b/pkgs/atool-wrapped/default.nix new file mode 100644 index 0000000..b319335 --- /dev/null +++ b/pkgs/atool-wrapped/default.nix @@ -0,0 +1,36 @@ +{ lib, + atool, + makeBinaryWrapper, + stdenvNoCC, + lzip, + plzip, + lzop, + lzma, + zip, + unzip, + arj, + rpm, + cpio, + p7zip, + unrar, + lha, + unfree ? false }: +let + wrappedPath = lib.makeBinPath ([lzip plzip lzop lzma zip unzip arj rpm cpio p7zip] ++ lib.optionals unfree [unrar lha]); +in +stdenvNoCC.mkDerivation { + name = "atool-wrapped"; + phases = [ "installPhase" ]; + nativeBuildInputs = [ makeBinaryWrapper ]; + src = ./.; + installPhase = '' + makeBinaryWrapper "${atool}/bin/atool" "$out/bin/atool" \ + --inherit-argv0 --prefix PATH : "${wrappedPath}" + for i in acat adiff als apack arepack aunpack ; do + ln -s $out/bin/atool $out/bin/$i + done + # i have no idea if this is the "right" way to do this + mkdir -p "$out/share" + ln -s "${atool}/share/man" "$out/share/man" + ''; +} diff --git a/pkgs/cofi/shell.nix b/pkgs/cofi/shell.nix new file mode 100644 index 0000000..ad025a7 --- /dev/null +++ b/pkgs/cofi/shell.nix @@ -0,0 +1,16 @@ +{ pkgs ? import {} }: +let + rofi-dmenu-wrapped = pkgs.writeShellScript "rofi-dmenu" '' + exec "${pkgs.rofi-wayland}/bin/rofi" -dmenu "$@" + ''; +in +pkgs.mkShell { + shellHook = '' + export COMMA_PICKER="${rofi-dmenu-wrapped}" + ''; + nativeBuildInputs = with pkgs; [ + rofi-wayland + libnotify + comma + ]; +} diff --git a/pkgs/default.nix b/pkgs/default.nix index ef0d6bd..8ff9479 100644 --- a/pkgs/default.nix +++ b/pkgs/default.nix @@ -6,4 +6,5 @@ in { google-fonts = callPackage ./google-fonts { }; wm-helpers = callPackage ./wm-helpers { }; + atool = callPackage ./atool-wrapped { }; }