{ rustPlatform, fetchFromGitHub, lib, installShellFiles, stdenv, Foundation, rust-jemalloc-sys, }: rustPlatform.buildRustPackage rec { pname = "yazi"; version = "0.2.5"; src = fetchFromGitHub { owner = "sxyazi"; repo = "yazi"; rev = "v${version}"; hash = "sha256-RwkgJX4naD3t97ce4Zg/VWJ41QiVFFqDW5nHpyMtISY="; }; cargoHash = "sha256-qnbinuTuaPiD7ib3aCJzSwuA4s3naFzi+txqX7jkHIo="; env.YAZI_GEN_COMPLETIONS = true; env.VERGEN_GIT_SHA = "Nixpkgs"; env.VERGEN_BUILD_DATE = "2024-04-23"; # TODO: remove in the next release cargoBuildFlags = [ "-p" "yazi-fm" "-p" "yazi-cli" ]; nativeBuildInputs = [ installShellFiles ]; buildInputs = [ rust-jemalloc-sys ] ++ lib.optionals stdenv.isDarwin [ Foundation ]; postInstall = '' installShellCompletion --cmd yazi \ --bash ./yazi-boot/completions/yazi.bash \ --fish ./yazi-boot/completions/yazi.fish \ --zsh ./yazi-boot/completions/_yazi install -Dm444 assets/yazi.desktop -t $out/share/applications install -Dm444 assets/logo.png $out/share/pixmaps/yazi.png ''; passthru.updateScript.command = [ ./update.sh ]; meta = { description = "Blazing fast terminal file manager written in Rust, based on async I/O"; homepage = "https://github.com/sxyazi/yazi"; license = lib.licenses.mit; maintainers = with lib.maintainers; [ xyenon matthiasbeyer linsui eljamm ]; mainProgram = "yazi"; }; }