55 lines
1.7 KiB
Nix
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];
|
|
};
|
|
});
|
|
}
|