# Atuin package definition # # This file will be similar to the package definition in nixpkgs: # https://github.com/NixOS/nixpkgs/blob/master/pkgs/by-name/at/atuin/package.nix # # Helpful documentation: https://github.com/NixOS/nixpkgs/blob/master/doc/languages-frameworks/rust.section.md { lib, stdenv, installShellFiles, rustPlatform, libiconv, Security, SystemConfiguration, AppKit, protobuf, }: rustPlatform.buildRustPackage { name = "atuin"; src = lib.cleanSource ./.; cargoLock = { lockFile = ./Cargo.lock; # Allow dependencies to be fetched from git and avoid having to set the outputHashes manually allowBuiltinFetchGit = true; }; nativeBuildInputs = [installShellFiles]; buildInputs = lib.optionals stdenv.isDarwin [libiconv Security SystemConfiguration AppKit protobuf]; env.PROTOC = lib.getExe' protobuf "protoc"; 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) ''; doCheck = false; meta = with lib; { description = "Replacement for a shell history which records additional commands context with optional encrypted synchronization between machines"; homepage = "https://github.com/atuinsh/atuin"; license = licenses.mit; mainProgram = "atuin"; }; }