32 lines
1 KiB
Nix
32 lines
1 KiB
Nix
|
{ lib, pkgs, config, ... }:
|
||
|
|
||
|
with lib;
|
||
|
with lib.plusultra;
|
||
|
let
|
||
|
cfg = config.plusultra.cli-apps.prisma;
|
||
|
in
|
||
|
{
|
||
|
options.plusultra.cli-apps.prisma = with types; {
|
||
|
enable = mkBoolOpt false "Whether or not to install Prisma";
|
||
|
pkgs = {
|
||
|
npm = mkOpt package pkgs.nodePackages.prisma "The NPM package to install";
|
||
|
engines = mkOpt package pkgs.prisma-engines
|
||
|
"The package to get prisma engines from";
|
||
|
};
|
||
|
};
|
||
|
|
||
|
config = mkIf cfg.enable {
|
||
|
environment.systemPackages = [ cfg.pkgs.npm ];
|
||
|
|
||
|
plusultra.home.extraOptions = {
|
||
|
programs.zsh.initExtra = ''
|
||
|
export PRISMA_MIGRATION_ENGINE_BINARY="${cfg.pkgs.engines}/bin/migration-engine"
|
||
|
export PRISMA_QUERY_ENGINE_BINARY="${cfg.pkgs.engines}/bin/query-engine"
|
||
|
export PRISMA_QUERY_ENGINE_LIBRARY="${cfg.pkgs.engines}/lib/libquery_engine.node"
|
||
|
export PRISMA_INTROSPECTION_ENGINE_BINARY="${cfg.pkgs.engines}/bin/introspection-engine"
|
||
|
export PRISMA_FMT_BINARY="${cfg.pkgs.engines}/bin/prisma-fmt"
|
||
|
'';
|
||
|
};
|
||
|
};
|
||
|
}
|