summaryrefslogtreecommitdiffhomepage
path: root/flake.nix
diff options
context:
space:
mode:
authorRalph Amissah <ralph.amissah@gmail.com>2022-11-23 22:12:48 -0500
committerRalph Amissah <ralph.amissah@gmail.com>2022-12-11 17:31:37 -0500
commitfc49148876e94924d4218b078c212578bbec9c10 (patch)
treec4940ecf228b10cb89f47b2da000365d5bbcc4c6 /flake.nix
sort how you want this to be
Diffstat (limited to 'flake.nix')
-rw-r--r--flake.nix79
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