diff --git a/services/omnisearch.nix b/services/omnisearch.nix index 2e9c99e..f971ca4 100644 --- a/services/omnisearch.nix +++ b/services/omnisearch.nix @@ -1,12 +1,61 @@ +#omnisearch.nix { config, lib, pkgs, ... }: let - omnisearch = builtins.fetchTarball { + omnisearchSrc = builtins.fetchTarball { url = "https://git.bwaaa.monster/omnisearch/snapshot/omnisearch-master.tar.gz"; }; + + beakerSrc = builtins.fetchGit { + url = "https://git.bwaaa.monster/beaker"; + shallow = true; + }; + + beaker = pkgs.stdenv.mkDerivation { + pname = "beaker"; + version = "git"; + src = beakerSrc; + makeFlags = [ + "INSTALL_PREFIX=$(out)/" + "LDCONFIG=true" + ]; + }; + + omnisearchPkg = pkgs.stdenv.mkDerivation { + pname = "omnisearch"; + version = "git"; + src = omnisearchSrc; + + buildInputs = [ + pkgs.libxml2.dev + pkgs.curl.dev + pkgs.openssl + beaker + ]; + + preBuild = '' + makeFlagsArray+=( + "PREFIX=$out" + "CFLAGS=-Wall -Wextra -O2 -Isrc -I${pkgs.libxml2.dev}/include/libxml2" + "LIBS=-lbeaker -lcurl -lxml2 -lpthread -lm -lssl -lcrypto" + ) + ''; + + installPhase = '' + mkdir -p $out/bin $out/share/omnisearch + install -Dm755 bin/omnisearch $out/bin/omnisearch + cp -r templates static -t $out/share/omnisearch/ + ''; + }; + + fakeSelf = { + packages.${pkgs.stdenv.hostPlatform.system}.default = omnisearchPkg; + }; + + omnisearchModule = import "${omnisearchSrc}/module.nix" fakeSelf; in { - imports = [ "${omnisearch}/module.nix" ]; + imports = [ omnisearchModule ]; config = lib.mkIf (config.networking.hostName == "FredOS-Mediaserver") { services.omnisearch.enable = true;