bile 0.1.0

A simple build system, structured around Lua scripts.
{
  description = "";

  inputs.nixpkgs.url = "nixpkgs/nixos-unstable";

  inputs.rust-overlay = {
    url = "github:oxalica/rust-overlay";
    inputs.nixpkgs.follows = "nixpkgs";
  };

  inputs.naersk = {
    url = "github:nix-community/naersk";
    inputs.nixpkgs.follows = "nixpkgs";
  };

  outputs =
    {
      self,
      rust-overlay,
      naersk,
      nixpkgs,
    }:
    let
      systems = [
        "x86_64-linux"
        "aarch64-linux"
        "aarch64-darwin"
      ];

      rustup-toolchain = ./rust-toolchain.toml;

      eachSystem = nixpkgs.lib.genAttrs systems;
    in
    {
      devShells = eachSystem (system: {
        default = import ./shell.nix {
          inherit
            rustup-toolchain
            system
            rust-overlay
            nixpkgs
            ;
        };
      });

      packages = eachSystem (
        system:
        (import ./. {
          inherit
            system
            rust-overlay
            naersk
            nixpkgs
            rustup-toolchain
            ;
        })
      );

      apps = eachSystem (system: ({
        default = {
          type = "app";
          program = "${self.packages.${system}.bile}/bin/bile";
        };
      }));
    };
}