Files
2023-06-13 14:05:09 -04:00

55 lines
1.7 KiB
Nix

{
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];
};
});
}