diff options
Diffstat (limited to 'flake.nix')
-rw-r--r-- | flake.nix | 79 |
1 files changed, 79 insertions, 0 deletions
diff --git a/flake.nix b/flake.nix new file mode 100644 index 0000000..71285d5 --- /dev/null +++ b/flake.nix @@ -0,0 +1,79 @@ +{ + description = "a sisu like document parser search form"; + inputs.flake-utils.url = "github:numtide/flake-utils"; + inputs.nixpkgs.url = "github:nixos/nixpkgs"; + #inputs.nixpkgs.url = "/nixpkgs-ra/nixpkgs"; + outputs = { self, nixpkgs, flake-utils }: { + packages.x86_64-linux.spine_search = + let + pkgs = import nixpkgs { + system = "x86_64-linux"; + }; + #targetOf = package: "${package.targetPath or "."}/${package.targetName or package.name}"; + in pkgs.stdenv.mkDerivation { + pname = "spine_search"; + version = "0.12.0"; + description = "a sisu like document parser search form"; + inherit self; + src = self; + shell = ./shell.nix; + buildPhase = '' + runHook preBuild + HOME="$PWD" + DFLAGS="-O2 -inline" + for DC_ in dmd ldmd2 gdmd; do + echo "- check for D compiler $DC_" + DC=$(type -P $DC_ || echo "") + if [ ! "$DC" == "" ]; then break; fi + done + if [ "$DC" == "" ]; then + exit "Error: could not find D compiler" + fi + echo "$DC_ used as D compiler to build $pname" + dub build --compiler=$DC --build=release --combined --skip-registry=all + runHook postBuild + ''; + checkPhase = '' + runHook preCheck + HOME="$PWD" + dub test --combined --skip-registry=all + runHook postCheck + ''; + installPhase = '' + runHook preInstall + mkdir -p $out/share/cgi-bin + install -m755 -D ./cgi-bin/spine_search $out/share/cgi-bin/spine_search + runHook postInstall + ''; + postInstall = '' + echo `ls -la $out/share/cgi-bin/spine_search` + echo "" + echo "nix build or nix develop? (suggestions):" + echo '- nix build' + echo ' nix build .#spine_search --print-build-logs' + echo ' nix build --print-build-logs' + echo '- nix run' + echo ' nix run .#spine_search --print-build-logs' + echo ' nix run default.nix --print-build-logs' + echo '- nix shell' + echo ' nix shell --print-build-logs --command spine -v' + echo '- nix develop' + echo ' nix develop --build -f derivation.nix -I .envrc --print-build-logs' + echo ' nix develop ; eval "$buildPhase"' + echo 'spine -v' + echo 'nix-instantiate | nix show-derivation | jq' + echo `ls -la $out/share/cgi-bin/spine_search` + echo "built:" + ''; + nativeBuildInputs = with pkgs; [ ldc dub ]; + buildInputs = with pkgs; [ sqlite ]; + }; + packages.x86_64-linux.default = self.packages.x86_64-linux.spine_search; + }; +} + +#nix flake update +#nix flake check +#nix flake show +#nix develop +#nix build .#default --print-build-logs |