a8mini-camera-rs 0.2.1

A8 Mini Camera Controller
Documentation
{
  description = "A8 Mini Camera Control Rust Library";

  inputs = {
    naersk.url = "github:nix-community/naersk/master";
    nixpkgs.url = "github:NixOS/nixpkgs/nixpkgs-unstable";
    utils.url = "github:numtide/flake-utils";
    pre-commit-hooks.url = "github:cachix/git-hooks.nix";
  };

  outputs = { self, nixpkgs, utils, naersk, pre-commit-hooks }:
    utils.lib.eachDefaultSystem (system:
      let
        pkgs = import nixpkgs { inherit system; };
        naersk-lib = pkgs.callPackage naersk { };
        src = pkgs.lib.cleanSource ./.;

        a8mini-camera-rs = naersk-lib.buildPackage {
          pname = "a8mini-camera-rs";
          inherit src;
        };

        pre-commit-check = pre-commit-hooks.lib.${system}.run {
          inherit src;
          hooks = {
            nixpkgs-fmt.enable = true;
            cargo-check.enable = true;
            # clippy.enable = true;
            rustfmt.enable = true;
          };
        };

      in
      {
        checks = {
          # inherit pre-commit-check;
        };

        packages = {
          inherit a8mini-camera-rs;
          default = a8mini-camera-rs;
        };

        devShells.default = with pkgs; mkShell {
          inherit (pre-commit-check) shellHook;
          inputsFrom = [ a8mini-camera-rs ];

          buildInputs = [
            curl
            cargo
            rustc
            rustfmt
            pre-commit
            rustPackages.clippy
          ] ++ pre-commit-check.enabledPackages;
          RUST_SRC_PATH = rustPlatform.rustLibSrc;
        };
      }
    );
}