aboutsummaryrefslogtreecommitdiff
path: root/flake.nix
diff options
context:
space:
mode:
authorbeeb5k <beebeeb5k@gmail.com>2026-03-18 21:50:05 +0530
committerfrosty <gabriel@bwaaa.monster>2026-03-18 13:08:19 -0400
commit7b21caccad038d080d48c39c7e23449a1ca34f9c (patch)
tree149070c2c2ab25a463ab8fa615055e908c285850 /flake.nix
parent6df9239f84c6af39cbc0f7ae795d1ccc7bc84c2a (diff)
downloadomnisearch-7b21caccad038d080d48c39c7e23449a1ca34f9c.tar.gz
feat: add nix support
Diffstat (limited to 'flake.nix')
-rw-r--r--flake.nix76
1 files changed, 76 insertions, 0 deletions
diff --git a/flake.nix b/flake.nix
new file mode 100644
index 0000000..6e86ab9
--- /dev/null
+++ b/flake.nix
@@ -0,0 +1,76 @@
+{
+ inputs = {
+ nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
+ beaker-src = {
+ url = "git+https://git.bwaaa.monster/beaker";
+ flake = false;
+ };
+ };
+
+ outputs =
+ {
+ self,
+ nixpkgs,
+ beaker-src,
+ }:
+ let
+ supportedSystems = [
+ "x86_64-linux"
+ "aarch64-linux"
+ ];
+ forAllSystems = nixpkgs.lib.genAttrs supportedSystems;
+ in
+ {
+ formatter = forAllSystems (system: nixpkgs.legacyPackages.${system}.nixfmt);
+ packages = forAllSystems (
+ system:
+ let
+ pkgs = import nixpkgs { inherit system; };
+
+ beaker = pkgs.stdenv.mkDerivation {
+ pname = "beaker";
+ version = "git";
+ src = beaker-src;
+ makeFlags = [
+ "INSTALL_PREFIX=$(out)/"
+ "LDCONFIG=true"
+ ];
+ };
+ in
+ {
+ default = pkgs.stdenv.mkDerivation {
+ pname = "omnisearch";
+ version = "git";
+ src = ./.;
+
+ 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/
+ '';
+
+ meta = {
+ description = "Lightweight metasearch engine in C";
+ platforms = pkgs.lib.platforms.linux;
+ };
+ };
+ }
+ );
+ nixosModules.default = import ./module.nix self;
+ };
+}