Something went wrong. Try again.
lol
Something went wrong. Try again.
2.1 kB · 90 lines
Nix
at master
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091{ lib, fetchgit, fetchFromGitHub, fetchFromGitLab, fetchFromGitea, stdenvNoCC, callPackage, ensureNewerSourcesForZipFilesHook, maubot, python3, poetry, formats,}:
let # pname: plugin id (example: xyz.maubot.echo) # version: plugin version # other attributes are passed directly to stdenv.mkDerivation (you at least need src) buildMaubotPlugin = attrs@{ version, pname, base_config ? null, ... }: stdenvNoCC.mkDerivation ( removeAttrs attrs [ "base_config" ] // { pluginName = "${pname}-v${version}.mbp"; nativeBuildInputs = (attrs.nativeBuildInputs or [ ]) ++ [ ensureNewerSourcesForZipFilesHook maubot ]; buildPhase = '' runHook preBuild
mbc build
runHook postBuild '';
postPatch = lib.optionalString (base_config != null) '' [ -e base-config.yaml ] || (echo "base-config.yaml doesn't exist, can't override it" && exit 1) cp "${ if builtins.isPath base_config || lib.isDerivation base_config then base_config else if builtins.isString base_config then builtins.toFile "base-config.yaml" base_config else (formats.yaml { }).generate "base-config.yaml" base_config }" base-config.yaml '' + attrs.postPatch or "";
installPhase = '' runHook preInstall
mkdir -p $out/lib/maubot-plugins install -m 444 $pluginName $out/lib/maubot-plugins
runHook postInstall ''; } );
generated = import ./generated.nix { inherit lib fetchgit fetchFromGitHub fetchFromGitLab fetchFromGitea python3 poetry buildMaubotPlugin ; };ingenerated// { inherit buildMaubotPlugin;
allOfficialPlugins = builtins.filter (x: x.isOfficial && !x.meta.broken) ( builtins.attrValues generated );
allPlugins = builtins.filter (x: !x.meta.broken) (builtins.attrValues generated);}