diff --git a/pkgs/tools/misc/eza/default.nix b/pkgs/tools/misc/eza/default.nix new file mode 100644 index 000000000000000..f3b2fa0e52b848c --- /dev/null +++ b/pkgs/tools/misc/eza/default.nix @@ -0,0 +1,61 @@ +{ lib +, gitSupport ? true +, stdenv +, fetchFromGitHub +, rustPlatform +, cmake +, pandoc +, pkg-config +, zlib +, Security +, libiconv +, installShellFiles +}: + +rustPlatform.buildRustPackage rec { + pname = "eza"; + version = "0.10.4"; + + src = fetchFromGitHub { + owner = "cafkafk"; + repo = "eza"; + rev = "v${version}"; + hash = "sha256-9Pw7DQ/QTRHNsCPen+Nn5HdvjX1ju08q+KyitPF9+xQ="; + }; + + cargoHash = "sha256-KveRmlgyree77ZDOB4hQA35F/u/ARKiAHRgHpjCXOow="; + + nativeBuildInputs = [ cmake pkg-config installShellFiles pandoc ]; + buildInputs = [ zlib ] + ++ lib.optionals stdenv.isDarwin [ libiconv Security ]; + + buildNoDefaultFeatures = true; + buildFeatures = lib.optional gitSupport "git"; + + outputs = [ "out" "man" ]; + + postInstall = '' + pandoc --standalone -f markdown -t man man/eza.1.md > man/eza.1 + pandoc --standalone -f markdown -t man man/eza_colors.5.md > man/eza_colors.5 + installManPage man/eza.1 man/eza_colors.5 + installShellCompletion \ + --bash completions/bash/eza \ + --fish completions/fish/eza.fish \ + --zsh completions/zsh/_eza + ''; + + meta = with lib; { + description = "A modern, maintained replacement for ls"; + longDescription = '' + eza is a modern replacement for ls. It uses colours for information by + default, helping you distinguish between many types of files, such as + whether you are the owner, or in the owning group. It also has extra + features not present in the original ls, such as viewing the Git status + for a directory, or recursing into directories with a tree view. eza is + written in Rust, so it’s small, fast, and portable. + ''; + homepage = "https://github.com/cafkafk/eza"; + license = licenses.mit; + maintainers = with maintainers; [ cafkafk ]; + }; +} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index a45f1e1b5636259..9482b47820f60a6 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -7810,6 +7810,10 @@ with pkgs; expliot = callPackage ../tools/security/expliot { }; + eza = callPackage ../tools/misc/eza { + inherit (darwin.apple_sdk.frameworks) Security; + }; + f2fs-tools = callPackage ../tools/filesystems/f2fs-tools { }; Fabric = with python3Packages; toPythonApplication fabric;