{ lib, stdenv, fetchFromGitHub, installShellFiles, rustPlatform, libiconv, Security, SystemConfiguration, }: rustPlatform.buildRustPackage rec { name = "atuin"; src = lib.cleanSource ./.; cargoLock.lockFile = ./Cargo.lock; nativeBuildInputs = [installShellFiles]; buildInputs = lib.optionals stdenv.isDarwin [libiconv Security SystemConfiguration]; postInstall = '' installShellCompletion --cmd atuin \ --bash <($out/bin/atuin gen-completions -s bash) \ --fish <($out/bin/atuin gen-completions -s fish) \ --zsh <($out/bin/atuin gen-completions -s zsh) ''; meta = with lib; { description = "Replacement for a shell history which records additional commands context with optional encrypted synchronization between machines"; homepage = "https://github.com/ellie/atuin"; license = licenses.mit; }; }