Ctrl K
ComunidadGuías…

flake.nix

Rama main · réplica de lectura del repositorio original.

Archivo original ↗Preguntar a KiBot
{
  description = "Prismedia reproducible development environment";

  inputs = {
    nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";

    # Keep the Nix browser revision exactly aligned with @playwright/test in
    # package.json. Update this input when the JavaScript dependency changes.
    nixpkgs-playwright.url = "github:NixOS/nixpkgs/9e87430ac7e25a6ba9f5a593c300f4e114a00f57";
  };

  outputs =
    {
      self,
      nixpkgs,
      nixpkgs-playwright,
    }:
    let
      supportedSystems = [
        "x86_64-linux"
        "aarch64-linux"
        "aarch64-darwin"
      ];
      forAllSystems = nixpkgs.lib.genAttrs supportedSystems;
    in
    {
      nixosModules = {
        default = self.nixosModules.development;
        development = import ./nix/nixos-module.nix;
      };

      packages = forAllSystems (
        system:
        let
          environment = import ./nix/environment.nix {
            inherit system nixpkgs nixpkgs-playwright;
          };
        in
        {
          default = environment.devTools;
          doctor = environment.doctor;
          setup = environment.setup;
        }
      );

      apps = forAllSystems (
        system:
        let
          environment = import ./nix/environment.nix {
            inherit system nixpkgs nixpkgs-playwright;
          };
        in
        {
          default = self.apps.${system}.doctor;
          doctor = {
            type = "app";
            program = nixpkgs.lib.getExe environment.doctor;
            meta.description = "Check the Prismedia development environment";
          };
          setup = {
            type = "app";
            program = nixpkgs.lib.getExe environment.setup;
            meta.description = "Install Prismedia workspace dependencies";
          };
        }
      );

      devShells = forAllSystems (
        system:
        let
          environment = import ./nix/environment.nix {
            inherit system nixpkgs nixpkgs-playwright;
          };
        in
        {
          default = environment.devShell;
        }
      );

      checks = forAllSystems (
        system:
        let
          environment = import ./nix/environment.nix {
            inherit system nixpkgs nixpkgs-playwright;
          };
        in
        environment.checks
      );

      formatter = forAllSystems (system: nixpkgs.legacyPackages.${system}.nixfmt);
    };
}