aboutsummaryrefslogtreecommitdiffstats
path: root/nix/package.nix
diff options
context:
space:
mode:
authorBenedikt Peetz <benedikt.peetz@b-peetz.de>2026-06-12 01:54:21 +0200
committerBenedikt Peetz <benedikt.peetz@b-peetz.de>2026-06-12 01:54:21 +0200
commitbbdf38018b47328b5faa2cef635c37095045be72 (patch)
tree8983817d547551ae12508a8ae8731b622d990af4 /nix/package.nix
parentfeat(server): Make user stuff stateless (diff)
downloadatuin-bbdf38018b47328b5faa2cef635c37095045be72.zip
feat(server): Really make users stateless (with tests)
This commit also remove another load of unneeded features.
Diffstat (limited to 'nix/package.nix')
-rw-r--r--nix/package.nix63
1 files changed, 63 insertions, 0 deletions
diff --git a/nix/package.nix b/nix/package.nix
new file mode 100644
index 00000000..82a348b8
--- /dev/null
+++ b/nix/package.nix
@@ -0,0 +1,63 @@
+# 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,
+}:
+rustPlatform.buildRustPackage {
+ name = "turtle";
+
+ src = lib.cleanSourceWith {
+ src = lib.cleanSource ./..;
+ filter = name: type:
+ (type == "directory")
+ || (builtins.elem (builtins.baseNameOf name) [
+ "Cargo.toml"
+ "Cargo.lock"
+ "CONTRIBUTORS"
+
+ "atuin.bash"
+ "atuin.fish"
+ "atuin.nu"
+ "atuin.ps1"
+ "atuin.xsh"
+ "atuin.zsh"
+ ])
+ || (lib.strings.hasSuffix ".rs" (builtins.baseNameOf name))
+ || (lib.strings.hasSuffix ".proto" (builtins.baseNameOf name))
+ || (lib.strings.hasSuffix ".sql" (builtins.baseNameOf name));
+ };
+
+ 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];
+
+ 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";
+ };
+}