2024-02-14 21:54:21 +01:00
|
|
|
{
|
|
|
|
|
description = "Terminal session recorder";
|
|
|
|
|
|
|
|
|
|
inputs = {
|
|
|
|
|
nixpkgs.url = github:nixos/nixpkgs/nixpkgs-unstable;
|
2024-04-20 14:02:53 +02:00
|
|
|
rust-overlay.url = github:oxalica/rust-overlay;
|
2024-02-14 21:54:21 +01:00
|
|
|
flake-utils.url = github:numtide/flake-utils;
|
|
|
|
|
};
|
|
|
|
|
|
2024-04-20 14:02:53 +02:00
|
|
|
outputs = { self, nixpkgs, rust-overlay, flake-utils }:
|
|
|
|
|
flake-utils.lib.eachDefaultSystem (system:
|
|
|
|
|
let
|
|
|
|
|
overlays = [ (import rust-overlay) ];
|
|
|
|
|
pkgs = import nixpkgs { inherit system overlays; };
|
|
|
|
|
cargoToml = builtins.fromTOML (builtins.readFile ./Cargo.toml);
|
|
|
|
|
msrv = cargoToml.package.rust-version;
|
|
|
|
|
|
|
|
|
|
buildDeps = rust: with pkgs; [
|
|
|
|
|
rust
|
|
|
|
|
] ++ (lib.optionals stdenv.isDarwin [
|
|
|
|
|
libiconv
|
|
|
|
|
darwin.apple_sdk.frameworks.Foundation
|
|
|
|
|
]) ++ testDeps;
|
|
|
|
|
|
|
|
|
|
testDeps = with pkgs; [
|
|
|
|
|
python3
|
|
|
|
|
];
|
|
|
|
|
|
|
|
|
|
mkDevShell = rust: pkgs.mkShell {
|
|
|
|
|
nativeBuildInputs = buildDeps (rust.override {
|
|
|
|
|
extensions = [ "rust-src" ];
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
RUST_BACKTRACE = 1;
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
mkPackage = rust: (pkgs.makeRustPlatform {
|
|
|
|
|
cargo = rust;
|
|
|
|
|
rustc = rust;
|
|
|
|
|
}).buildRustPackage {
|
|
|
|
|
inherit (cargoToml.package) name version;
|
|
|
|
|
src = ./.;
|
|
|
|
|
cargoLock.lockFile = ./Cargo.lock;
|
|
|
|
|
nativeBuildInputs = buildDeps rust;
|
|
|
|
|
dontUseCargoParallelTests = true;
|
|
|
|
|
};
|
|
|
|
|
in
|
|
|
|
|
{
|
|
|
|
|
devShells.default = mkDevShell pkgs.rust-bin.stable.latest.default;
|
|
|
|
|
devShells.msrv = mkDevShell pkgs.rust-bin.stable.${msrv}.default;
|
|
|
|
|
packages.default = mkPackage pkgs.rust-bin.stable.latest.minimal;
|
|
|
|
|
}
|
|
|
|
|
);
|
2024-02-14 21:54:21 +01:00
|
|
|
}
|