diff --git a/.gitignore b/.gitignore index ea8c4bf..243fe9b 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,4 @@ /target + +result +result-* diff --git a/default.nix b/default.nix index 746f564..b06183d 100644 --- a/default.nix +++ b/default.nix @@ -1,22 +1,35 @@ { lib -, fetchFromGitHub +, stdenv +, buildPackages , rustPlatform -, makeWrapper -, mpv +, installShellFiles }: - +let + cargoToml = builtins.fromTOML (builtins.readFile ./Cargo.toml); +in rustPlatform.buildRustPackage rec { - pname = "thumbctl"; - version = "0.1.0"; + pname = cargoToml.package.name; + version = cargoToml.package.version; src = lib.cleanSource ./.; - nativeBuildInputs = [ makeWrapper ]; + cargoLock.lockFile = ./Cargo.lock; - cargoHash = ""; + nativeBuildInputs = [ + installShellFiles + ]; + + postInstall = let + emulator = stdenv.hostPlatform.emulator buildPackages; + in '' + installShellCompletion --cmd thumbctl \ + --bash <(${emulator} $out/bin/thumbctl generate-completions --shell bash) \ + --zsh <(${emulator} $out/bin/thumbctl generate-completions --shell zsh) \ + --fish <(${emulator} $out/bin/thumbctl generate-completions --shell fish) + ''; meta = with lib; { - license = licenses.mit; + license = licenses.gpl3Only; maintainers = with maintainers; [ h7x4 ]; platforms = platforms.linux; mainProgram = "thumbctl"; diff --git a/flake.nix b/flake.nix index 62ebf32..71f8874 100644 --- a/flake.nix +++ b/flake.nix @@ -25,7 +25,9 @@ }; rust-bin = rust-overlay.lib.mkRustBin { } pkgs.buildPackages; - toolchain = rust-bin.stable.latest.default; + toolchain = rust-bin.stable.latest.default.override { + extensions = [ "rust-src" "rust-analyzer" "rust-std" ]; + }; in f system pkgs toolchain); in { apps = forAllSystems (system: pkgs: _: { @@ -42,12 +44,6 @@ default = pkgs.mkShell { nativeBuildInputs = [ toolchain - pkgs.pkg-config - ]; - - buildInputs = [ - # pkgs.systemdLibs.dev - pkgs.dbus.dev ]; RUST_SRC_PATH = "${toolchain}/lib/rustlib/src/rust/library";