{
inputs = {
flake-parts = {
inputs.nixpkgs-lib.follows = "nixpkgs";
url = "github:hercules-ci/flake-parts";
};
nixpkgs.url = "github:NixOS/nixpkgs/nixpkgs-unstable";
};
outputs = inputs:
inputs.flake-parts.lib.mkFlake { inherit inputs; } {
systems = [ "x86_64-linux" "x86_64-darwin" ];
perSystem = { pkgs, lib, config, ...}:
let
src = inputs.self;
inherit (lib.importTOML (src + "/Cargo.toml")) package;
in
{
packages = {
default = pkgs.rustPlatform.buildRustPackage {
pname = package.name;
inherit (package) version;
inherit src;
cargoLock.lockFile = (src + "/Cargo.lock");
};
};
devShells.default = pkgs.mkShell {
packages = with pkgs; [
cargo
rustc
rustfmt
clippy
];
};
apps = {
default = {
program = "${config.packages.default}/bin/dott";
type = "app";
};
};
};
};
}