knoll 0.2.4

A command-line tool for configuring macOS displays
Documentation
{
  inputs = {
    nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
    flake-utils.url = "github:numtide/flake-utils";
    rust-overlay = {
      url = "github:oxalica/rust-overlay";
      inputs = {
        nixpkgs.follows = "nixpkgs";
        flake-utils.follows = "flake-utils";
      };
    };
    cargo2nix = {
      url = "github:cargo2nix/cargo2nix/release-0.11.0";
      inputs = {
        nixpkgs.follows = "nixpkgs";
        flake-utils.follows = "flake-utils";
        rust-overlay.follows = "rust-overlay";
      };
    };
  };

  outputs = { self, nixpkgs, flake-utils, rust-overlay, cargo2nix }:
    flake-utils.lib.eachDefaultSystem
      (system:
        let
          overlays = [
            rust-overlay.overlays.default 
            cargo2nix.overlays.default 
          ];
          pkgs = import nixpkgs {
            inherit system overlays;
          };
          # TODO Why isn't this exposed in pkgs by the overlays?
          cargo2nix_pkg = 
            cargo2nix.packages."${system}".cargo2nix;

          rustVersion = "1.71.1";
          rustPkgs = pkgs.rustBuilder.makePackageSet {
            inherit rustVersion;
            packageFun = import ./Cargo.nix;
            packageOverrides = pkgs: pkgs.rustBuilder.overrides.all;
          };

          workspaceShell = rustPkgs.workspaceShell {
            packages = [
              cargo2nix_pkg
              # TODO Currently cannot pull in all needed private frameworks.
              #pkgs.darwin.apple_sdk.frameworks.*?
            ];
          };
        in rec {
          # TODO Fix reported warnings.
          devShells.default = workspaceShell;
          packages = {
            knoll = rustPkgs.workspace.knoll {};
            default = packages.knoll;
          };
        }
      );
}