dott 0.1.1

Simple dotfile management
Documentation
{
  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";
            };
          };
        };
    };
}