{ description = "A very basic flake"; inputs = { nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable"; flake-utils.url = "github:numtide/flake-utils"; }; outputs = { self, nixpkgs, flake-utils }: flake-utils.lib.eachDefaultSystem (system: let pkgs = nixpkgs.legacyPackages.${system}; test-command = ''deno test --unstable --allow-read=tests .''; test = pkgs.stdenv.mkDerivation { name = "test"; src = ./.; buildInputs = [pkgs.deno]; buildPhase = '' export DENO_DIR=`$tmp` deno test --import-map vendor/import_map.json --unstable --allow-read=tests . > test_results.txt ''; installPhase = '' mv test_results.txt $out ''; }; swagger-ui-src = pkgs.stdenv.mkDerivation { name = "swagger-ui-src"; src = pkgs.fetchzip { url = "https://github.com/swagger-api/swagger-ui/archive/refs/tags/v5.0.0.zip"; hash = "sha256-M/P/teEMqQ0gW0k/mvsr/VnkzuTI82+OMc8PAxCQAKM="; }; installPhase = '' cp -r dist $out ''; }; swagger-ui = pkgs.writeShellApplication { name = "swagger-ui"; runtimeInputs = [swagger-ui-src pkgs.python311]; text = '' exec ${pkgs.python311}/bin/python -m http.server -d ${swagger-ui-src} 7766 ''; }; in { packages = { test = test; swagger-ui = swagger-ui; }; devShells.default = pkgs.mkShell { buildInputs = with pkgs; [deno hey psrecord]; }; }); }