aboutsummaryrefslogtreecommitdiff
path: root/nixpkgs/pkgs/tools/misc/broot/default.nix
diff options
context:
space:
mode:
Diffstat (limited to 'nixpkgs/pkgs/tools/misc/broot/default.nix')
-rw-r--r--nixpkgs/pkgs/tools/misc/broot/default.nix65
1 files changed, 52 insertions, 13 deletions
diff --git a/nixpkgs/pkgs/tools/misc/broot/default.nix b/nixpkgs/pkgs/tools/misc/broot/default.nix
index bf5d569bab4..62ca179cfde 100644
--- a/nixpkgs/pkgs/tools/misc/broot/default.nix
+++ b/nixpkgs/pkgs/tools/misc/broot/default.nix
@@ -1,40 +1,79 @@
-{ stdenv, rustPlatform, fetchFromGitHub, coreutils, libiconv, Security, installShellFiles }:
+{ stdenv
+, rustPlatform
+, fetchCrate
+, installShellFiles
+, makeWrapper
+, coreutils
+, libiconv
+, xcbuild
+, zlib
+, Security
+}:
rustPlatform.buildRustPackage rec {
pname = "broot";
- version = "0.13.6";
+ version = "1.0.0";
- src = fetchFromGitHub {
- owner = "Canop";
- repo = pname;
- rev = "v${version}";
- sha256 = "08d0zddqqymxj1qcp8c78r7mpii1piy6awaf135jxhzwi775sqqv";
+ src = fetchCrate {
+ inherit pname version;
+ sha256 = "1dc6lb6ihj4s0mcp1say16j9yr61jdbzhmayxxsm4ansngbzmw45";
};
- cargoSha256 = "1cxvx51zkmhszmgwsi0aj469xz98v5nk79zvqfyma27gsnh8jczr";
+ cargoSha256 = "0nqmincayjv1snxz94i14fypc9dv69fxfqqdz3qbcvc2cs62zayg";
- nativeBuildInputs = [ installShellFiles ];
+ nativeBuildInputs = [
+ makeWrapper
+ installShellFiles
+ xcbuild # The cc crate attempts to run xcbuild.
+ ];
- buildInputs = stdenv.lib.optionals stdenv.isDarwin [ libiconv Security ];
+ buildInputs = stdenv.lib.optionals stdenv.isDarwin [
+ libiconv
+ Security
+ zlib
+ ];
postPatch = ''
- substituteInPlace src/verb_store.rs --replace '"/bin/' '"${coreutils}/bin/'
+ substituteInPlace src/verb/builtin.rs --replace '"/bin/' '"${coreutils}/bin/'
+
+ # Fill the version stub in the man page. We can't fill the date
+ # stub reproducibly.
+ substitute man/page man/broot.1 \
+ --replace "#version" "${version}"
'';
postInstall = ''
+ # Do not nag users about installing shell integration, since
+ # it is impure.
+ wrapProgram $out/bin/broot \
+ --set BR_INSTALL no
+
+ # Install shell function for bash.
+ $out/bin/broot --print-shell-function bash > br.bash
+ install -Dm0444 -t $out/etc/profile.d br.bash
+
+ # Install shell function for zsh.
+ $out/bin/broot --print-shell-function zsh > br.zsh
+ install -Dm0444 br.zsh $out/share/zsh/site-functions/br
+
+ # Install shell function for fish
+ $out/bin/broot --print-shell-function fish > br.fish
+ install -Dm0444 -t $out/share/fish/vendor_functions.d br.fish
+
# install shell completion files
OUT_DIR=$releaseDir/build/broot-*/out
installShellCompletion --bash $OUT_DIR/{br,broot}.bash
installShellCompletion --fish $OUT_DIR/{br,broot}.fish
installShellCompletion --zsh $OUT_DIR/{_br,_broot}
+
+ installManPage man/broot.1
'';
meta = with stdenv.lib; {
description = "An interactive tree view, a fuzzy search, a balanced BFS descent and customizable commands";
homepage = "https://dystroy.org/broot/";
- maintainers = with maintainers; [ magnetophon ];
+ maintainers = with maintainers; [ danieldk ];
license = with licenses; [ mit ];
- platforms = platforms.all;
};
}