diff options
Diffstat (limited to 'flake.nix')
-rw-r--r-- | flake.nix | 300 |
1 files changed, 161 insertions, 139 deletions
@@ -1,148 +1,170 @@ { - description = "spine (sisu like parser & document generator) made available to process markup samples"; + description = "spine (sisu like parser & document generator) made available to process markup samples"; inputs = { - nixpkgs.url = "github:NixOS/nixpkgs/nixpkgs-unstable"; # "github:nixos/nixpkgs"; - flake-utils.url = "github:numtide/flake-utils"; - spine.url = "git+file:///home/ralph/grotto/repo/git.repo/projects/doc-reform/code/software/spine"; + nixpkgs.url = "github:NixOS/nixpkgs/nixpkgs-unstable"; # "github:nixos/nixpkgs"; + flake-utils.url = "github:numtide/flake-utils"; + spine.url = "git+file:///home/ralph/grotto/repo/git.repo/projects/doc-reform/code/software/spine"; spine.inputs.nixpkgs.follows = "nixpkgs"; - spine.flake = true; + spine.flake = true; }; - outputs = { self, nixpkgs, flake-utils, spine } @inputs: - let - version = "0.12.0"; - shell = ./shell.nix; # ./default.nix; - devEnv = ./.envrc; # ./shell.nix; # ./default.nix; - supportedSystems = [ "x86_64-linux" ]; # [ "x86_64-linux" "x86_64-darwin" "aarch64-linux" "aarch64-darwin" ]; - forAllSystems = nixpkgs.lib.genAttrs supportedSystems; - nixpkgsFor = forAllSystems (system: import nixpkgs { inherit system; }); # nixpkgs instantiated for supported system types. + outputs = { + self, + nixpkgs, + flake-utils, + spine, + } @ inputs: let + version = "0.12.0"; + shell = ./shell.nix; # ./default.nix; + devEnv = ./.envrc; # ./shell.nix; # ./default.nix; + supportedSystems = ["x86_64-linux"]; # [ "x86_64-linux" "x86_64-darwin" "aarch64-linux" "aarch64-darwin" ]; + forAllSystems = nixpkgs.lib.genAttrs supportedSystems; + nixpkgsFor = forAllSystems (system: import nixpkgs {inherit system;}); # nixpkgs instantiated for supported system types. + in { + packages = forAllSystems (system: let + pkgs = nixpkgsFor.${system}; in { - packages = forAllSystems (system: - let pkgs = nixpkgsFor.${system}; - in { - default = spine.packages.${system}.default; - spine-dmd = spine.packages.${system}.spine-dmd; - spine-ldc = spine.packages.${system}.spine-ldc; - #spine-gdc = spine.packages.${system}.spine-gdc; - #vendorSha256 = "sha256-0Q00000000000000000000000000000000000000000="; - }); - apps = forAllSystems (system: { - default = { - type = "app"; - program = "${self.packages.${system}.default}/bin/spine"; + default = spine.packages.${system}.default; + spine-dmd = spine.packages.${system}.spine-dmd; + spine-ldc = spine.packages.${system}.spine-ldc; + #spine-gdc = spine.packages.${system}.spine-gdc; + #vendorSha256 = "sha256-0Q00000000000000000000000000000000000000000="; + }); + apps = forAllSystems (system: { + default = { + type = "app"; + program = "${self.packages.${system}.default}/bin/spine"; + }; + }); + devShells = forAllSystems (system: let + pkgs = nixpkgsFor.${system}; + shellHook = '' + export DFLAGS="-O2 -inline -boundscheck=on -color=on" + export Date=`date "+%Y%m%d"` + ### set local values in .envrc-local (or modify here if you must) + # export SpinePROJ=~/grotto/repo/git.repo/projects/doc-reform/code/software/spine + # export SpineDOC=~/grotto/repo/git.repo/projects/project-spine/doc-reform-markup/spine-markup-samples + # export SpineOUT=/srv/www/spine + export SpineDBpath=/var/www/sqlite + # export SpineDBpath=/srv/www/spine/sqlite + export SpineSRC=$SpinePROJ/src + export SpineBIN=$SpinePROJ/result/bin + export SpinePOD=$SpineDOC/markup/pod + export SpineSearchActionLocal='http://localhost/spine_search' + export SpineSearchActionRemote='https://sisudoc.org/spine_search' + export SpineCGIform='spine_search' + export SpineSQLdb='spine.search.db' + export spineNixHelp="cat ./.env/nix-commands" + export spineTest="nix shell .#default --print-build-logs --command spine --very-verbose --epub --html --html-link-search --html-link-curate --curate --output=\"\$SpineOUT\" $SpinePOD/*" + export spineHtml="spine --very-verbose --html --html-link-search --html-link-curate --curate --sqlite-update --sqlite-db-filename=\"spine.search.db\" --cgi-sqlite-search-filename=\"spine_search\" --sqlite-db-path=\"\$SpineDBpath\" --output=\"\$SpineOUT\" $SpinePOD/*" + export spineEpub="spine --very-verbose --epub --output=\"\$SpineOUT\" $SpinePOD/*" + export spineLatex="spine --very-verbose --latex --output=\"\$SpineOUT\" $SpinePOD/*" + export spinePdf="spine --very-verbose --pdf --output=\"\$SpineOUT\" $SpinePOD/*" + export spineSqliteCreateDB="spine --very-verbose --sqlite-db-recreate --sqlite-db-path=\"$SpineDBpath\" --sqlite-db-filename=\"spine.search.db\"" + export spineSqlite="spine --very-verbose --sqlite-discrete --sqlite-db-path=\"$SpineDBpath\" --sqlite-db-filename=\"spine.search.db\" --output=\"\$SpineOUT\" $SpinePOD/*" + #export spineSqlite="spine --very-verbose --sqlite-update --sqlite-db-path=\"$SpineDBpath\" --sqlite-db-filename=\"spine.search.db\" --output=\"\$SpineOUT\" $SpinePOD/*" + ''; + in + with pkgs; { + devShell = mkShell { + name = "spine base dev shell"; + inherit shell; + inherit devEnv; + #buildInputs = [ sqlite ]; + #nativeBuildInputs = [ dub dmd ldc gdc gnumake ]; + packages = [ + sqlite + dub + dmd + ldc + gnumake + ]; + inherit shellHook; }; - }); - devShells = forAllSystems (system: - let - pkgs = nixpkgsFor.${system}; - shellHook = '' - export DFLAGS="-O2 -inline -boundscheck=on -color=on" - export Date=`date "+%Y%m%d"` - ### set local values in .envrc-local (or modify here if you must) - # export SpinePROJ=~/grotto/repo/git.repo/projects/doc-reform/code/software/spine - # export SpineDOC=~/grotto/repo/git.repo/projects/project-spine/doc-reform-markup/spine-markup-samples - # export SpineOUT=/srv/www/spine - export SpineDBpath=/var/www/sqlite - # export SpineDBpath=/srv/www/spine/sqlite - export SpineSRC=$SpinePROJ/src - export SpineBIN=$SpinePROJ/result/bin - export SpinePOD=$SpineDOC/markup/pod - export SpineSearchActionLocal='http://localhost/spine_search' - export SpineSearchActionRemote='https://sisudoc.org/spine_search' - export SpineCGIform='spine_search' - export SpineSQLdb='spine.search.db' - export spineNixHelp="cat ./.env/nix-commands" - export spineTest="nix shell .#default --print-build-logs --command spine --very-verbose --epub --html --html-link-search --html-link-curate --curate --output=\"\$SpineOUT\" $SpinePOD/*" - export spineHtml="spine --very-verbose --html --html-link-search --html-link-curate --curate --sqlite-update --sqlite-db-filename=\"spine.search.db\" --cgi-sqlite-search-filename=\"spine_search\" --sqlite-db-path=\"\$SpineDBpath\" --output=\"\$SpineOUT\" $SpinePOD/*" - export spineEpub="spine --very-verbose --epub --output=\"\$SpineOUT\" $SpinePOD/*" - export spineLatex="spine --very-verbose --latex --output=\"\$SpineOUT\" $SpinePOD/*" - export spinePdf="spine --very-verbose --pdf --output=\"\$SpineOUT\" $SpinePOD/*" - export spineSqliteCreateDB="spine --very-verbose --sqlite-db-recreate --sqlite-db-path=\"$SpineDBpath\" --sqlite-db-filename=\"spine.search.db\"" - export spineSqlite="spine --very-verbose --sqlite-discrete --sqlite-db-path=\"$SpineDBpath\" --sqlite-db-filename=\"spine.search.db\" --output=\"\$SpineOUT\" $SpinePOD/*" - #export spineSqlite="spine --very-verbose --sqlite-update --sqlite-db-path=\"$SpineDBpath\" --sqlite-db-filename=\"spine.search.db\" --output=\"\$SpineOUT\" $SpinePOD/*" - ''; - in with pkgs; { - devShell = mkShell { - name = "spine base dev shell"; - inherit shell; - inherit devEnv; - #buildInputs = [ sqlite ]; - #nativeBuildInputs = [ dub dmd ldc gdc gnumake ]; - packages = [ - sqlite - dub dmd ldc gnumake - ]; - inherit shellHook; - }; - devShell-epub = mkShell { - name = "spine dev shell for epub output"; - inherit shell; - inherit devEnv; - packages = [ - dub dmd ldc gnumake - sqlite - libxml2 - html-tidy - xmlstarlet - epubcheck - ebook_tools - libxml2 - html-tidy - xmlstarlet - epubcheck - ebook_tools - epr - sigil - calibre #(suite includes: ebook-viewer) - foliate - ]; - inherit shellHook; - }; - devShell-html = mkShell { - name = "spine dev shell for latex & pdf output"; - inherit shell; - inherit devEnv; - packages = [ - dub dmd ldc gnumake - sqlite - ]; - inherit shellHook; - }; - devShell-latex-pdf = mkShell { - name = "spine dev shell for latex & pdf output"; - inherit shell; - inherit devEnv; - packages = [ - dub dmd ldc gnumake - sqlite - source-sans-pro - source-serif-pro - source-code-pro - texlive.combined.scheme-full - ]; - inherit shellHook; - }; - devShell-sqlite = mkShell { - name = "spine dev shell for latex & pdf output"; - inherit shell; - inherit devEnv; - packages = [ - dub dmd ldc gnumake - sqlite - ]; - inherit shellHook; - }; - devShell-i18n = mkShell { - name = "spine dev shell internationalization, po4a"; - inherit shell; - inherit devEnv; - packages = [ - dub dmd ldc gnumake - sqlite - perl534Packages.Po4a - ]; - inherit shellHook; - }; - default = import ./shell.nix { inherit pkgs; }; + devShell-epub = mkShell { + name = "spine dev shell for epub output"; + inherit shell; + inherit devEnv; + packages = [ + dub + dmd + ldc + gnumake + sqlite + libxml2 + html-tidy + xmlstarlet + epubcheck + ebook_tools + libxml2 + html-tidy + xmlstarlet + epubcheck + ebook_tools + epr + sigil + calibre #(suite includes: ebook-viewer) + foliate + ]; + inherit shellHook; + }; + devShell-html = mkShell { + name = "spine dev shell for latex & pdf output"; + inherit shell; + inherit devEnv; + packages = [ + dub + dmd + ldc + gnumake + sqlite + ]; + inherit shellHook; + }; + devShell-latex-pdf = mkShell { + name = "spine dev shell for latex & pdf output"; + inherit shell; + inherit devEnv; + packages = [ + dub + dmd + ldc + gnumake + sqlite + source-sans-pro + source-serif-pro + source-code-pro + texlive.combined.scheme-full + ]; + inherit shellHook; + }; + devShell-sqlite = mkShell { + name = "spine dev shell for latex & pdf output"; + inherit shell; + inherit devEnv; + packages = [ + dub + dmd + ldc + gnumake + sqlite + ]; + inherit shellHook; + }; + devShell-i18n = mkShell { + name = "spine dev shell internationalization, po4a"; + inherit shell; + inherit devEnv; + packages = [ + dub + dmd + ldc + gnumake + sqlite + perl534Packages.Po4a + ]; + inherit shellHook; + }; + default = import ./shell.nix {inherit pkgs;}; }); }; } |