diff options
author | Ralph Amissah <ralph.amissah@gmail.com> | 2025-01-29 15:17:17 -0500 |
---|---|---|
committer | Ralph Amissah <ralph.amissah@gmail.com> | 2025-01-29 15:17:28 -0500 |
commit | a31b6c8270e141f09f56d52e5f11c80880573d25 (patch) | |
tree | 3deccb2f7a214b46b7225d39af6a079fef5671fb /org | |
parent | nix flake check (diff) |
- current is at ruby 3.3.6
- next is at ruby 3.4.1
- much tidying required
- markup unaffected
Diffstat (limited to 'org')
-rw-r--r-- | org/config_env.org | 195 | ||||
-rw-r--r-- | org/config_git.org | 12 | ||||
-rw-r--r-- | org/config_nix.org | 1480 |
3 files changed, 413 insertions, 1274 deletions
diff --git a/org/config_env.org b/org/config_env.org new file mode 100644 index 0000000..f481649 --- /dev/null +++ b/org/config_env.org @@ -0,0 +1,195 @@ +-*- mode: org -*- +#+TITLE: sisudoc spine (doc_reform) (project) environment +#+DESCRIPTION: env envrc used by make & nix +#+FILETAGS: :spine:build:tools: +#+AUTHOR: Ralph Amissah +#+EMAIL: [[mailto:ralph.amissah@gmail.com][ralph.amissah@gmail.com]] +#+COPYRIGHT: Copyright (C) 2015 - 2025 Ralph Amissah +#+LANGUAGE: en +#+STARTUP: content hideblocks hidestars noindent entitiespretty +#+PROPERTY: header-args :exports code +#+PROPERTY: header-args+ :noweb yes +#+PROPERTY: header-args+ :results no +#+PROPERTY: header-args+ :cache no +#+PROPERTY: header-args+ :padline no +#+PROPERTY: header-args+ :mkdirp yes +#+OPTIONS: H:3 num:nil toc:t \n:t ::t |:t ^:nil -:t f:t *:t + +- [[./doc-reform.org][doc-reform.org]] [[../org/][org/]] +- [[./config_nix.org][config_nix.org]] +- [[./config_make.org][config_make.org]] + +* envrc +** nixDevEnv envrc :envrc: + +#+HEADER: :tangle ../nixDevEnv.sh +#+BEGIN_SRC shell +if [ -f .envrc ]; then + source_env_if_exists .envrc || source .envrc +fi +#+END_SRC + +* envrc :envrc: + +- https://github.com/nix-community/nix-direnv + - source_url "https://raw.githubusercontent.com/nix-community/nix-direnv/${NixDirEnvVersion}/direnvrc" "sha256-0000000000000000000000000000000000000000000=" + +** .envrc + +#+NAME: envrc +#+HEADER: :tangle ../.envrc +#+BEGIN_SRC shell +if [ -f .envrc-git-init ]; then + source_env_if_exists .envrc-git-init || source .envrc-git-init +fi +if [ -f .envrc-local ]; then + source_env_if_exists .envrc-local || source .envrc-local +fi +if [ -f .envrc-nix ]; then + source_env_if_exists .envrc-nix || source .envrc-nix +fi +PATH_add result/bin +#nix flake update && nix flake check --show-trace && nix flake show +#+END_SRC + +** .envrc-nix + +- https://github.com/nix-community/nix-direnv + - source_url + - direnv fetchurl "https://raw.githubusercontent.com/nix-community/nix-direnv/<<direnv-version>>/direnvrc" "<<direnv-sha>>" + - ${NixDirEnvVersion} + +#+HEADER: :tangle ../.envrc-nix +#+BEGIN_SRC shell +NIX_ENFORCE_PURITY=1 +# - https://github.com/nix-community/nix-direnv +NixDirEnvVersion="3.0.6" +NixDirEnvSHA="sha256-RYcUJaRMf8oF5LznDrlCXbkOQrywm0HDv1VjYGaJGdM=" +if ! has nix_direnv_version || ! nix_direnv_version ${NixDirEnvVersion}; then + source_url "https://raw.githubusercontent.com/nix-community/nix-direnv/${NixDirEnvVersion}/direnvrc" "${NixDirEnvSHA}" +fi +watch_file flake.lock +watch_file flake.nix +watch_file shell.nix +watch_file makefile +watch_file nixDevEnv.sh +watch_file .envrc-local +watch_file .envrc-nix +PATH_add result/bin +use flake . +echo " +• consider running: + ❯❯ nix flake show + ❯❯ nix flake update && nix flake check && nix flake show + +• for a dev shell (development environment): + + ❯❯ nix develop + ❯❯ nix develop ".#" --print-build-logs -c zsh + ❯❯ nix develop ".#dsh-latex-pdf" --print-build-logs -c zsh + +• to build project: + + ❯❯ nix build ".#" --print-build-logs + - (see nix other/additional build options): + ❯❯ nix flake show +" +#+END_SRC + +*** 3.0.6 + +#+NAME: direnv-version +#+BEGIN_SRC shell +3.0.6 +#+END_SRC + +#+NAME: direnv-sha +#+BEGIN_SRC shell +sha256-RYcUJaRMf8oF5LznDrlCXbkOQrywm0HDv1VjYGaJGdM= +#+END_SRC + +*** 3.0.4 + +#+BEGIN_SRC shell +3.0.4 +#+END_SRC + +#+BEGIN_SRC shell +sha256-DzlYZ33mWF/Gs8DDeyjr8mnVmQGx7ASYqA5WlxwvBG4= +#+END_SRC + +*** 3.0.0 + +#+BEGIN_SRC shell +3.0.0 +#+END_SRC + +#+BEGIN_SRC shell +sha256-21TMnI2xWX7HkSTjFFri2UaohXVj854mgvWapWrxRXg= +#+END_SRC + +*** 2.4.0 + +#+BEGIN_SRC shell +2.4.0 +#+END_SRC + +#+BEGIN_SRC shell +sha256-XQzUAvL6pysIJnRJyR7uVpmUSZfc7LSgWQwq/4mBr1U= +#+END_SRC + +#+BEGIN_SRC shell +2.3.0 +#+END_SRC + +#+BEGIN_SRC shell +sha256-Dmd+j63L84wuzgyjITIfSxSD57Tx7v51DMxVZOsiUD8= +#+END_SRC + +*** empty + +#+NAME: direnv-sha_ +#+BEGIN_SRC shell +sha256-0000000000000000000000000000000000000000000= +#+END_SRC + +#+BEGIN_SRC shell +- https://github.com/nix-community/nix-direnv +NixDirEnvSHA="sha256-0000000000000000000000000000000000000000000=" +direnv fetchurl https://raw.githubusercontent.com/nix-community/nix-direnv/${NixDirEnvVersion}/direnvrc +#+END_SRC + +** .envrc-git-init + +#+HEADER: :tangle ../.envrc-git-init +#+HEADER: :noweb yes +#+BEGIN_SRC shell +if [[ ! -d ./.git ]]; then + git init + git add . +fi +#+END_SRC + +** .envrc-local CHECK MODIFY + +- bespoke modify appropriately and generate if needed + +#+HEADER: :tangle ../.envrc-local_ +#+HEADER: :noweb yes +#+BEGIN_SRC shell +export SisuVER=$(git describe --long --tags | sed 's/^[ a-z_-]\+\([0-9.]\+\)/\1/;s/\([^-]*-g\)/r\1/;s/-/./g') +PATH_add result/bin +#export sisuBIN=result/bin +export sisuPROJ=~/grotto/repo/git.repo/projects/doc-reform/code/software/sisu +export sisuDOC=./data/samples/current +export sisuOUT=/srv/www/sisu +#export sisuOUT=/var/www +#export sisuOUTver=/tmp/sisu/$sisuVER/www +export sisuCGIbin=/var/www/cgi/cgi-bin +export sisuSearchActionLocal='http://localhost/sisu_search' +export sisuSearchActionRemote='https://sisudoc.org/sisu_search' +export sisuCGIform='sisu_search' +export sisuSQLdb='spine.search.db' +export sisuDBpath=/var/www/sqlite +#export sisuDBpath=/srv/www/sisu/sqlite +#+END_SRC diff --git a/org/config_git.org b/org/config_git.org index 44668c1..3772967 100644 --- a/org/config_git.org +++ b/org/config_git.org @@ -27,22 +27,19 @@ # git clean -ix # find . -name "*_" | xargs rm -rf ,* +!.gitignore +!.gitattributes !nix/** !*.nix !flake.lock -!.envrc -!.env -!.env/** !README !COPYRIGHT !CHANGELOG !makefile -!version.txt !configuration.txt !conf/ !conf/** !*.json -!tangle !*.org !org/ !org/*.org @@ -73,8 +70,9 @@ !.gitignore !.gitattributes !.envrc -!.env -!.env/** +!.envrc-local_ +!.envrc-nix +!.envrc-git-init #+END_SRC ** .gitattributes :gitattributes: diff --git a/org/config_nix.org b/org/config_nix.org index 6455b5a..4cc10b4 100644 --- a/org/config_nix.org +++ b/org/config_nix.org @@ -1,10 +1,10 @@ -*- mode: org -*- #+TITLE: configuration nix -#+DESCRIPTION: makefile for spine -#+FILETAGS: :spine:build:tools: +#+DESCRIPTION: configuration nix +#+FILETAGS: :sisu:build:tools: #+AUTHOR: Ralph Amissah #+EMAIL: [[mailto:ralph.amissah@gmail.com][ralph.amissah@gmail.com]] -#+COPYRIGHT: Copyright (C) 2015 - 2023 Ralph Amissah +#+COPYRIGHT: Copyright (C) 2015 - 2025 Ralph Amissah #+LANGUAGE: en #+STARTUP: content hideblocks hidestars noindent entitiespretty #+PROPERTY: header-args :exports code @@ -22,542 +22,219 @@ /srv/nix/nixpkgs #+END_SRC -** spine +* sisu - default.nix - shell.nix -*** envrc :envrc: -**** .envrc - -- https://github.com/nix-community/nix-direnv - - source_url "https://raw.githubusercontent.com/nix-community/nix-direnv/${NixDirEnvVersion}/direnvrc" "sha256-0000000000000000000000000000000000000000000=" - -#+HEADER: :tangle ../.envrc -#+BEGIN_SRC sh -use flake . -#use flake .#default -NIX_ENFORCE_PURITY=1 -NixDirEnvVersion="2.2.1" -if ! has nix_direnv_version || ! nix_direnv_version ${NixDirEnvVersion}; then -# - https://github.com/nix-community/nix-direnv -# source_url "https://raw.githubusercontent.com/nix-community/nix-direnv/${NixDirEnvVersion}/direnvrc" "sha256-0000000000000000000000000000000000000000000=" - source_url "https://raw.githubusercontent.com/nix-community/nix-direnv/${NixDirEnvVersion}/direnvrc" "sha256-zelF0vLbEl5uaqrfIzbgNzJWGmLzCmYAkInj/LNxvKs=" -fi -watch_file flake.lock -watch_file flake.nix -if [ -f .envrc-local ]; then - source_env_if_exists .envrc-local || source .envrc-local -fi -PATH_add result/bin -#nix flake update && nix flake check --show-trace && nix flake show -#+END_SRC - -**** .envrc-local CHECK MODIFY - -- bespoke modify appropriately and generate if needed - -#+HEADER: :tangle ../.envrc-local_ -#+HEADER: :noweb yes -#+BEGIN_SRC sh -PATH_add result/bin -export DFLAGS="-O2 -inline -boundscheck=on -color=on" -#export sisuBIN=result/bin -export sisuPROJ=~/grotto/repo/git.repo/projects/doc-reform/code/software/sisu -export sisuDOC=. -export sisuDBpath=/var/www/sqlite -#export sisuDBpath=/srv/www/sisu/sqlite -export sisuOUT=/srv/www/sisu -export sisuCGIbin=/var/www/cgi/cgi-bin -export sisuSearchActionLocal='http://localhost/sisu_search' -export sisuSearchActionRemote='https://sisudoc.org/sisu_search' -export sisuCGIform='sisu_search' -export sisuSQLdb='spine.search.db' -#+END_SRC - -*** flake :flake: -**** flake -***** flake.nix +** flake.nix #+HEADER: :tangle ../flake.nix #+HEADER: :noweb yes #+BEGIN_SRC nix { - description = "sisu parser & document generator"; - inputs = { - nixpkgs.url = "github:NixOS/nixpkgs/nixpkgs-unstable"; # "github:nixos/nixpkgs"; - flake-utils.url = "github:numtide/flake-utils"; - sisu.url = "git://git.sisudoc.org/software/sisu"; - #git clone git://git.sisudoc.org/software/sisu - sisu.inputs.nixpkgs.follows = "nixpkgs"; - sisu.flake = true; - }; - outputs = { self, nixpkgs, flake-utils, sisu } @inputs: - let - version = "<<sisu_version_set>>"; - 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. + description = "sisu parser & document generator"; + inputs.nixpkgs.url = "<<nixpkgs_url>>"; + inputs.sisu.url = "git://git.sisudoc.org/software/sisu"; + #git clone git://git.sisudoc.org/software/sisu + inputs.sisu.inputs.nixpkgs.follows = "nixpkgs"; + inputs.sisu.flake = true; + outputs = { + self, + nixpkgs, + sisu + } @ inputs: let + version = "<<sisu_version_set>>"; + shell = ./shell.nix; # ./default.nix; + devEnv = ./.envrc; # ./.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 = sisu.packages.${system}.default; - #vendorSha256 = "sha256-0Q00000000000000000000000000000000000000000="; - }); - apps = forAllSystems (system: { - default = { - type = "app"; - program = "${self.packages.${system}.default}/bin/sisu"; + default = sisu.packages.${system}.default; + #vendorSha256 = "sha256-0Q00000000000000000000000000000000000000000="; + }); + apps = forAllSystems (system: { + default = { + type = "app"; + program = "${self.packages.${system}.default}/bin/sisu"; + }; + }); + devShells = forAllSystems (system: let + pkgs = nixpkgsFor.${system}; + shellHook = '' + export Date=`date "+%Y%m%d"` + ### set local values in .envrc-local (or modify here if you must) + # export sisuPROJ=~/grotto/repo/git.repo/projects/doc-reform/code/software/sisu + # export sisuDOC=~/grotto/repo/git.repo/projects/project-sisu/doc-reform-markup/sisu-markup-samples + # export sisu=/srv/www/sisu + # export sisu=/var/www/sqlite + # export sisu=/srv/www/sisu/sqlite + export sisu=$sisuPROJ/src + export sisu=$sisuPROJ/result/lib + export sisu=$sisuDOC/markup/pod + export sisu=$sisuOUT/$sisuVER + export sisu='http://localhost/sisu_search' + # export sisuSearchActionRemote='https://sisudoc.org/sisu_search' + export sisuCGIform='sisu_search' + export sisuSQLdb='sisusearch.db' + export PROG_VER_GIT="`git describe --long --tags | sed -e 's/^[ a-z_-]\+\([0-9.]\+\)/\1/;s/\([^-]*-g\)/r\1/;s/-/./g'`" + export sisuNixHelp="cat ./.env/nix-commands" + export sisuTest="nix shell .#default --print-build-logs --command sisu --very-verbose --epub --html --html-link-search --html-link-curate --curate --output=\"\$sisuOUT\" $sisuPOD/*" + export sisuHtml="sisu --very-verbose --html --html-link-search --html-link-curate --curate --sqlite-update --sqlite-db-filename=\"sisu.search.db\" --cgi-sqlite-search-filename=\"sisu_search\" --sqlite-db-path=\"\$sisuDBpath\" --output=\"\$sisuOUT\" $sisuPOD/*" + export sisuEpub="sisu --very-verbose --epub --output=\"\$sisuOUT\" $sisuPOD/*" + export sisuLatex="sisu --very-verbose --latex --output=\"\$sisuOUT\" $sisuPOD/*" + export sisuPdf="sisu --very-verbose --pdf --output=\"\$sisuOUT\" $sisuPOD/*" + export sisuSqliteCreateDB="sisu --very-verbose --sqlite-db-recreate --sqlite-db-path=\"$sisuDBpath\" --sqlite-db-filename=\"sisu.search.db\"" + export sisuSqlite="sisu --very-verbose --sqlite-discrete --sqlite-db-path=\"$sisuDBpath\" --sqlite-db-filename=\"sisu.search.db\" --output=\"\$sisuOUT\" $sisuPOD/*" + #export sisuSqlite="sisu --very-verbose --sqlite-update --sqlite-db-path=\"$sisuDBpath\" --sqlite-db-filename=\"sisu.search.db\" --output=\"\$sisuOUT\" $sisuPOD/*" + ''; + in + with pkgs; { + dsh = mkShell { + name = "sisu dev base shell"; + inherit shell; + inherit devEnv; + packages = [ + <<ruby_current>> + sqlite + jq + git + ]; + inherit shellHook; + }; + dsh-epub = mkShell { + name = "sisu dev shell for epub output"; + inherit shell; + inherit devEnv; + packages = [ + <<ruby_current>> + sqlite + graphicsmagick + zip + unzip + xz + libxml2 + html-tidy + xmlstarlet + epubcheck + ebook_tools + libxml2 + html-tidy + xmlstarlet + epubcheck + ebook_tools + epr + sigil + calibre #(suite includes: ebook-viewer) + foliate + validatePkgConfig + jq + git + ]; + inherit shellHook; + }; + dsh-html = mkShell { + name = "sisu dev shell for html output"; + inherit shell; + inherit devEnv; + packages = [ + <<ruby_current>> + sqlite + graphicsmagick + zip + unzip + xz + validatePkgConfig + jq + git + ]; + inherit shellHook; }; - }); - devShells = forAllSystems (system: - let - pkgs = nixpkgsFor.${system}; - shellHook = '' - export Date=`date "+%Y%m%d"` - ### set local values in .envrc-local (or modify here if you must) - # export sisuPROJ=~/grotto/repo/git.repo/projects/doc-reform/code/software/sisu - # export sisuDOC=~/grotto/repo/git.repo/projects/project-sisu/doc-reform-markup/sisu-markup-samples - # export sisu=/srv/www/sisu - # export sisu=/var/www/sqlite - # export sisu=/srv/www/sisu/sqlite - export sisu=$sisuPROJ/src - export sisu=$sisuPROJ/result/lib - export sisu=$sisuDOC/markup/pod - export sisu=$sisuOUT/$sisuVER - export sisu='http://localhost/sisu_search' - # export sisuSearchActionRemote='https://sisudoc.org/sisu_search' - export sisuCGIform='sisu_search' - export sisuSQLdb='sisusearch.db' - export PROG_VER_GIT="`git describe --long --tags | sed -e 's/^[ a-z_-]\+\([0-9.]\+\)/\1/;s/\([^-]*-g\)/r\1/;s/-/./g'`" - export PROG_VER_DECLARED="`cat ./views/version.txt | grep --color=never "enum" | sed 's/.\+(\([0-9]\+\),[ \t]\+\([0-9]\+\),[ \t]\+\([0-9]\+\)[ \t]*).\+/\1.\2.\3/g'`" - export sisuNixHelp="cat ./.env/nix-commands" - export sisuTest="nix shell .#default --print-build-logs --command sisu --very-verbose --epub --html --html-link-search --html-link-curate --curate --output=\"\$sisuOUT\" $sisuPOD/*" - export sisuHtml="sisu --very-verbose --html --html-link-search --html-link-curate --curate --sqlite-update --sqlite-db-filename=\"sisu.search.db\" --cgi-sqlite-search-filename=\"sisu_search\" --sqlite-db-path=\"\$sisuDBpath\" --output=\"\$sisuOUT\" $sisuPOD/*" - export sisuEpub="sisu --very-verbose --epub --output=\"\$sisuOUT\" $sisuPOD/*" - export sisuLatex="sisu --very-verbose --latex --output=\"\$sisuOUT\" $sisuPOD/*" - export sisuPdf="sisu --very-verbose --pdf --output=\"\$sisuOUT\" $sisuPOD/*" - export sisuSqliteCreateDB="sisu --very-verbose --sqlite-db-recreate --sqlite-db-path=\"$sisuDBpath\" --sqlite-db-filename=\"sisu.search.db\"" - export sisuSqlite="sisu --very-verbose --sqlite-discrete --sqlite-db-path=\"$sisuDBpath\" --sqlite-db-filename=\"sisu.search.db\" --output=\"\$sisuOUT\" $sisuPOD/*" - #export sisuSqlite="sisu --very-verbose --sqlite-update --sqlite-db-path=\"$sisuDBpath\" --sqlite-db-filename=\"sisu.search.db\" --output=\"\$sisuOUT\" $sisuPOD/*" - ''; - in with pkgs; { - devShell = mkShell { - name = "sisu dev shell default"; - inherit shell; - inherit devEnv; - packages = [ sqlite ]; - inherit shellHook; - }; - devShell-epub = mkShell { - name = "sisu dev shell for epub output"; - inherit shell; - inherit devEnv; - packages = [ - ruby_3_1 - rubyPackages_3_1.rake - rubyPackages_3_1.sqlite3 - rubyPackages_3_1.thor - sqlite - zip - unzip - xz - libxml2 - html-tidy - xmlstarlet - epubcheck - ebook_tools - libxml2 - html-tidy - xmlstarlet - epubcheck - ebook_tools - epr - sigil - calibre #(suite includes: ebook-viewer) - foliate - nixFlakes - validatePkgConfig - jq - git - ]; - inherit shellHook; - }; - devShell-html = mkShell { - name = "sisu dev shell for latex & pdf output"; - inherit shell; - inherit devEnv; - packages = [ - ruby_3_1 - rubyPackages_3_1.rake - rubyPackages_3_1.sqlite3 - rubyPackages_3_1.thor - sqlite - zip - unzip - xz - nixFlakes - validatePkgConfig - jq - git - ]; - inherit shellHook; - }; - devShell-latex-pdf = mkShell { - name = "sisu dev shell for latex & pdf output"; - inherit shell; - inherit devEnv; - packages = [ - ruby_3_1 - rubyPackages_3_1.rake - rubyPackages_3_1.sqlite3 - rubyPackages_3_1.thor - sqlite - zip - unzip - xz - source-sans-pro - source-serif-pro - source-code-pro - texlive.combined.scheme-full - nixFlakes - validatePkgConfig - jq - git - ]; - inherit shellHook; - }; - devShell-sqlite = mkShell { - name = "sisu dev shell for latex & pdf output"; - inherit shell; - inherit devEnv; - packages = [ - ruby_3_1 - rubyPackages_3_1.rake - rubyPackages_3_1.sqlite3 - rubyPackages_3_1.thor - sqlite - zip - unzip - xz - nixFlakes - validatePkgConfig - jq - git - ]; - inherit shellHook; - }; - devShell-i18n = mkShell { - name = "sisu dev shell internationalization, po4a"; - inherit shell; - inherit devEnv; - packages = [ - ruby_3_1 - rubyPackages_3_1.rake - rubyPackages_3_1.sqlite3 - rubyPackages_3_1.thor - sqlite - perl534Packages.Po4a - nixFlakes - validatePkgConfig - jq - git - ]; - inherit shellHook; - }; - }); + dsh-latex-pdf = mkShell { + name = "sisu dev shell for latex & pdf output"; + inherit shell; + inherit devEnv; + packages = [ + <<ruby_current>> + sqlite + graphicsmagick + zip + unzip + xz + source-sans-pro + source-serif-pro + source-code-pro + texliveFull # texliveTeTeX + noto-fonts + noto-fonts-cjk-sans + takao + validatePkgConfig + jq + git + ]; + inherit shellHook; + }; + dsh-sqlite = mkShell { + name = "sisu dev shell for sqlite3 output"; + inherit shell; + inherit devEnv; + packages = [ + <<ruby_current>> + sqlite + graphicsmagick + zip + unzip + xz + validatePkgConfig + jq + git + ]; + inherit shellHook; + }; + dsh-i18n = mkShell { + name = "sisu dev shell internationalization, po4a"; + inherit shell; + inherit devEnv; + packages = [ + <<ruby_current>> + sqlite + graphicsmagick + perl538Packages.Po4a + validatePkgConfig + jq + git + ]; + inherit shellHook; + }; + default = import ./shell.nix { inherit pkgs; }; + }); }; } #+END_SRC *** flake :flake: -**** notes? - -- flake.nix - /srv/nix/nixpkgs - ./shell.nix - - shell.nix - ./pkgs/shell-pkgs.nix - - pkgs/shell-pkgs.nix - - default.nix - ./nix/dub.selections.nix # - - dub.selections.nix - -- nix develop - -- nix flake update - -- nix shell -f default.nix --print-build-logs -- nix shell -c default.nix - -- nix build `nix-instantiate` -- nix build -f default.nix --print-build-logs -- nix shell -f default.nix --print-build-logs -- nix develop --build -f derivation.nix -I .envrc --print-build-logs -- nix develop --profile .#default --print-build-logs --command spine -v - -- nix search --json 2>/dev/null |jq -- nix flake show -- nix show-derivation - -# nix-instantiate | nix-build - -#nix flake update -#nix flake check -#nix flake show -#nix develop -#nix build .#default --print-build-logs - -#+BEGIN_SRC nix -src = fetchTarball { - url = "file:///[path]/$(pname)-$(version).tar.gz"; - sha256 = "sha256:0000000000000000000000000000000000000000000000000000"; -}; -#+END_SRC - **** flake parts -***** flake metadata - -#+NAME: flake_metadata -#+HEADER: :noweb yes -#+BEGIN_SRC nix -pname = "spine"; -version = "<<sisu_version_set>>"; -description = "a sisu like parser and document generator"; -#+END_SRC - -***** flake inputs -****** flake inputs static - -#+NAME: flake_inputs_nix -#+HEADER: :noweb yes -#+BEGIN_SRC nix -nixpkgs.url = "github:nixos/nixpkgs"; -flake-utils.url = "github:numtide/flake-utils"; -#+END_SRC - -****** flake inputs for dub2nix - -#+NAME: flake_inputs_dub2nix -#+HEADER: :noweb yes -#+BEGIN_SRC nix -flake-utils.url = "github:numtide/flake-utils"; -nixpkgs.url = "github:nixos/nixpkgs"; -d2sqlite3-src = { url = "github:dlang-community/d2sqlite3"; flake = false; }; -tinyendian-src = { url = "github:kiith-sa/tinyendian"; flake = false; }; -dyaml-src = { url = "github:dlang-community/D-YAML"; flake = false; }; -imageformats-src = { url = "github:lgvz/imageformats"; flake = false; }; -dub2nix-src = { url = "github:lionello/dub2nix"; flake = false; }; -#+END_SRC - -***** flake outputs -****** flake outputs static - -#+NAME: flake_outputs -#+HEADER: :noweb yes -#+BEGIN_SRC nix -self, nixpkgs, flake-utils -#+END_SRC - -****** flake outputs for dub2nix - -#+NAME: flake_outputs_dub2nix -#+HEADER: :noweb yes -#+BEGIN_SRC nix -self, nixpkgs, flake-utils, dub2nix-src, d2sqlite3-src, tinyendian-src, dyaml-src, imageformats-src -#+END_SRC - -***** flake devshells - -#+NAME: flake_devshells -#+HEADER: :noweb yes -#+BEGIN_SRC nix -devShells = forAllSystems (system: - let pkgs = nixpkgsFor.${system}; - in { - default = pkgs.mkShell { - buildInputs = with pkgs; [ git dub dmd ldc sqlite ]; - }; -}); -#+END_SRC - -***** flake phases - -#+NAME: flake_phases -#+HEADER: :noweb yes -#+BEGIN_SRC nix -buildPhase = '' - runHook preBuild - HOME="$PWD" - for DC_ in dmd ldmd2 ldc2 gdc 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=$DC_ --combined --skip-registry=all - runHook postBuild -''; -<<flake_phases_other_than_buildPhase>> -#+END_SRC - -#+NAME: flake_phases_other_than_buildPhase -#+HEADER: :noweb yes -#+BEGIN_SRC nix -checkPhase = '' - runHook preCheck - dub test --combined --skip-registry=all - runHook postCheck -''; -installPhase = '' - runHook preInstall - mkdir -p $out/bin - install -m755 ./bin/spine $out/bin/spine - runHook postInstall -''; -postInstall = '' - echo `ls -la $out/bin/spine` - echo " - nix build or nix develop? (suggestions): - - nix build - nix build .#default --print-build-logs - nix flake update; nix build .#default --print-build-logs - nix build --print-build-logs - - nix run - nix run .#default --print-build-logs - nix run default.nix --print-build-logs - - nix shell - nix shell .#default --print-build-logs --command spine -v - - nix develop - nix develop --profile .#default --print-build-logs --command spine -v - nix develop ; eval \"$buildPhase\" - nix develop --build -f derivation.nix -I .envrc --print-build-logs - - nix profile install . --print-build-logs - spine -v - nix-instantiate | nix show-derivation | jq - " - $out/bin/spine -v -''; -#+END_SRC - -***** d-compiler (dmd ldc gdc) - -- dmd ldc gdc - -#+NAME: d-compiler -#+HEADER: :noweb yes -#+BEGIN_SRC nix -dmd -#+END_SRC - -***** flake spine dub2nix - -#+NAME: flake_output_spine_dub2nix -#+HEADER: :noweb yes -#+BEGIN_SRC nix -packages.x86_64-linux.spine = - let - pkgs = import nixpkgs { - system = "x86_64-linux"; - }; - #targetOf = package: "${package.targetPath or "."}/${package.targetName or package.name}"; - in - pkgs.stdenv.mkDerivation { - pname = "spine"; - version = "<<sisu_version_set>>"; - description = "a sisu like parser and document generator"; - inherit self; - src = self; - shell = ./shell.nix; - <<flake_phases>> - buildInputs = [ sqlite ]; - nativeBuildInputs = with pkgs; [ dub ldc ]; - }; -#+END_SRC - -***** flake misc - -#+BEGIN_SRC nix -src = fetchTarball { - url = "file:///[path]/$(pname)-$(version).tar.gz"; - sha256 = "sha256:0000000000000000000000000000000000000000000000000000"; -}; -#+END_SRC +***** ruby version -#+HEADER: :noweb yes -#+BEGIN_SRC nix -{ - description = "a sisu like parser & document generator"; - inputs = { - flake-utils.url = "github:numtide/flake-utils"; - nixpkgs.url = "<<nixpkgs_url>>"; - }; - outputs = { self, nixpkgs, flake-utils }: - let - pkgs = nixpkgs.legacyPackages.x86_64-linux; - in { - packages.x86_64-linux.spine = pkgs.stdenv.mkDerivation { - name = "spine"; - inherit self; - src = self; - shell = ./shell.nix; - installPhase = '' - install -m755 spine $out/bin/spine - ''; - }; - defaultPackage.x86_64-linux = self.packages.x86_64-linux.spine; - }; -} +#+NAME: ruby_current +#+BEGIN_SRC shell +ruby<<ruby_version>> +rubyPackages<<ruby_version>>.rake +rubyPackages<<ruby_version>>.sqlite3 +rubyPackages<<ruby_version>>.thor #+END_SRC -#+HEADER: :noweb yes -#+BEGIN_SRC nix -{ - description = "a sisu like document parser"; - inputs = { - flake-utils.url = "github:numtide/flake-utils"; - nixpkgs.url = "<<nixpkgs_url>>"; - d2sqlite3 = { - url = "github:dlang-community/d2sqlite3"; - flake = false; - }; - tinyendian = { - url = "github:kiith-sa/tinyendian"; - flake = false; - }; - dyaml = { - url = "github:dlang-community/D-YAML"; - flake = false; - }; - imageformats = { - url = "github:lgvz/imageformats"; - flake = false; - }; - }; - outputs = { self, d2sqlite3, tinyendian, dyaml, imageformats, nixpkgs, flake-utils }: - let - pkgs = nixpkgs.legacyPackages.x86_64-linux; - in { - packages.x86_64-linux.spine = pkgs.stdenv.mkDerivation { - name = "spine"; - inherit self; - src = self; - shell = ./shell.nix; - installPhase = '' - install -m755 spine $out/bin/spine - ''; - }; - defaultPackage.x86_64-linux = self.packages.x86_64-linux.spine; - }; -} +#+NAME: ruby_version +#+BEGIN_SRC shell +_3_4 #+END_SRC -*** shell.nix :shell: -**** tangle +** shell.nix :shell: +*** tangle #+HEADER: :tangle ../shell.nix #+HEADER: :tangle-mode (identity #o755) @@ -575,141 +252,17 @@ in pkgs.mkShell { #rubyPackages.rake #rubyPackages.sqlite3 #rubyPackages.thor - ruby_3_1 - rubyPackages_3_1.rake - rubyPackages_3_1.sqlite3 - rubyPackages_3_1.thor + <<ruby_current>> sqlite + graphicsmagick unzip xz zip - #texlive-combined-full + #texliveFull # texliveTeTeX ]; } #+END_SRC -**** Notes - -#+BEGIN_SRC text -#% Notes - -# - shell.nix -I .envrc -# - shell.nix -I .envrc --pure - -# [ nix-shell ] - - # - nix-shell -I nixpkgs=/srv/nix/nixpkgs --pure - # - nix-shell -p "with import /srv/nix/nixpkgs {}; ldc" --pure - # - nix-shell -p "with import /srv/nix/nixpkgs {}; [dub ldc]" --pure - - # - nix-shell -p nixVersions.unstable #nixFlakes - # - nix-shell -p nixFlakes --pure - # - nix-shell -p nixFlakes --pure -p "with import /srv/nix/nixpkgs {}; [nix dub ldc git ps]" - # - nix-shell shell.nix direnv: export +IN_NIX_SHELL - # - nix-shell shell.nix - -# [ nix-build ] - - # - nix-build -I nixpkgs=/srv/nix/nixpkgs # --pure - # - nix-build -I .envrc --pure - # - nix-build default.nix -I .envrc && result/bin/spine -v - -# [ nix-instantiate ] - - # - nix-instantiate | nix show-derivation | jq - # - nix-instantiate -I .envrc | nix show-derivation -f derivation.nix -I .envrc | jq - # - nix-instantiate | nix show-derivation --recursive | jq - # - nix-instantiate -I .envrc | nix show-derivation -f derivation.nix --recursive -I .envrc | jq - # - nix-instantiate | nix-build - # - nix-instantiate -I .envrc | nix-build -I .envrc - -# [ nix shell ] - - # - nix shell -c default.nix - # - nix shell -f default.nix --print-build-logs - -# [ nix build ] - - # - nix build -I .envrc --print-build-logs - # - nix build -f default.nix --print-build-logs - # - nix build -f derivation.nix --print-build-logs - - # - nix build `nix-instantiate` - # - nix build `nix-instantiate -I .envrc` - - # - nix build -f default.nix && ./result/bin/spine -v && noti -t "spine build" -m "see ./result/bin/spine" - # - nix build .#default - -# [ nix run ] - - # - nix run default.nix --print-build-logs - # - nix run -I .envrc default.nix --print-build-logs - # - nix run .#default - -# - nix-shell -I .envrc --pure -# - nix develop --build -f derivation.nix -I .envrc --print-build-logs - -# - nix-shell -p nixFlakes --pure -p "with import /srv/nix/nixpkgs {}; [nix dub ldc git ps]" -# - nix-build -# - nix build `nix-instantiate -I .envrc` - -# - nix develop --build -f default.nix -I .envrc - -# - nix-shell -I .envrc --pure -# - nix-build default.nix -I .envrc && result/bin/spine -v - -# - nix shell -f default.nix --print-build-logs -# - nix-instantiate -I .envrc | nix-build -I .envrc -#+END_SRC - -#+BEGIN_SRC text -#% Notes -- nix-shell - -- shell.nix --pure -- shell.nix --pure -I .envrc - -- nix-shell --pure -I nixpkgs=<<nixpkgs_local>> -- nix-shell --pure -p "with import <<nixpkgs_local>> {}; ldc" -- nix-shell --pure -p "with import /srv/nix/nixpkgs {}; [dub ldc]" - -- shell.nix direnv: export +IN_NIX_SHELL - -- nix-shell -p nixFlakes -- nix-shell -p nixFlakes --pure -- nix-shell -p nixFlakes --pure -p "with import /srv/nix/nixpkgs {}; [dub ldc]" - -- shell.nix -I .envrc -- nix-shell -I nixpkgs=<provide local nix path> -- nix-shell -I nixpkgs=<provide local nix path> --pure -- shell.nix -- nix-shell shell.nix --pure - -- nix shell -c default.nix - -- nix run default.nix --print-build-logs -- nix run -I .envrc default.nix --print-build-logs - -- nix develop - -- nix-build -I nixpkgs=<provide local nix path> -- nix-build -I .envrc - -- nix build -f default.nix --print-build-logs -- nix build -f derivation.nix --print-build-logs -- nix build -I .envrc --print-build-logs -- nix shell -f default.nix --print-build-logs -- nix develop --build -f derivation.nix -I .envrc --print-build-logs - -- buildPhase - -- nix build -f default.nix && noti -- nix build -f default.nix && ./result/bin/spine -v && noti -t "spine build" -m "see ./result/bin/spine" -- nix develop --build -f derivation.nix -I .envrc --print-build-logs - - ./result/bin/spine -#+END_SRC - **** shell parts (packages) ***** packages nix related @@ -725,229 +278,8 @@ git ps #+END_SRC -***** packages d build related - -#+NAME: shell_packages_d_build_related -#+BEGIN_SRC nix -### d_build_related -## package manager -dub -## compiler -ldc -rund -## linker -#lld -#mold -## builder -#ninja -#meson -#+END_SRC - -***** packages tools - -#+NAME: shell_packages_tool_download -#+BEGIN_SRC nix -### tools -#curl -#wget -aria -#+END_SRC - -***** packages candy - -#+NAME: shell_packages_candy -#+BEGIN_SRC nix -### candy -starship -#+END_SRC - -***** packages search sqlite related - -#+NAME: shell_packages_search_related_sqlite -#+BEGIN_SRC nix -### sqlite search related -sqlite -#+END_SRC - -***** packages pdf latex related - -#+NAME: shell_packages_pdf_latex_related -#+BEGIN_SRC nix -### pdf_latex_related -source-sans-pro -source-serif-pro -source-code-pro -texlive.combined.scheme-full -#+END_SRC - -***** packages xml epub related - -#+NAME: shell_packages_xml_and_epub_related -#+BEGIN_SRC nix -### xml_and_epub_related -libxml2 -html-tidy -xmlstarlet -epubcheck -ebook_tools -epr -sigil -calibre #(suite includes: ebook-viewer) -foliate -#+END_SRC - -***** packages i18n_translation related - -#+NAME: shell_packages_i18n_translation -#+BEGIN_SRC nix -### i18n translation related -perl534Packages.Po4a -#+END_SRC - -*** default.nix :default: - -- default.nix -I nixpkgs=<provide local nix path> - e.g. default.nix -I nixpkgs=/srv/nix/nixpkgs - -- nix-build -I nixpkgs=<provide local nix path> - e.g. nix-build -I nixpkgs=<<nixpkgs_local>> - -#+HEADER: :noweb yes -#+BEGIN_SRC sh -nix-build -I nixpkgs=<<nixpkgs_local>> -nix-build -I .envrc-local -nix-build -I .envrc -default.nix -I .envrc -default.nix - -nix build -f default.nix --print-build-logs -nix build -f derivation.nix --print-build-logs -nix shell -f default.nix --print-build-logs -nix develop --build -f derivation.nix -I .envrc --print-build-logs - -# nix build -f project.nix -# nix build -f spine.nix -#+END_SRC - - -*** project meta - -#+NAME: nix_project_meta -#+HEADER: :noweb yes -#+BEGIN_SRC nix -meta = with pkgs.lib; { - pname = "spine"; - version = "<<sisu_version_set>>"; - description = "a sisu like document parser"; - longDescription = '' - A sisu like parser and document generator - ''; - homepage = "https://sisudoc.org"; - license = licenses.agpl3Plus; - platforms = platforms.linux; - maintainers = [ "RalphAmissah" ]; -}; -#+END_SRC - -*** dub.selections.json - -#+HEADER: :NO-tangle ../dub.selections.json -#+BEGIN_SRC nix -{ - "fileVersion": 1, - "versions": { - "d2sqlite3": "0.19.1", - "dyaml": "0.8.3", - "imageformats": "7.0.2", - "tinyendian": "0.2.0" - } -} -#+END_SRC - -*** dub.selections.nix - -#+HEADER: :NO-tangle ../nix/dub.selections.nix -#+BEGIN_SRC nix -# This file was generated by https://github.com/lionello/dub2nix v0.2.3 -[ { - fetch = { - type = "git"; - url = "https://github.com/dlang-community/d2sqlite3.git"; - rev = "v0.19.1"; - sha256 = "0rnsgla6xyr8r34knf7v6dwhacra96q1b5rhxcz9246inwhvrk5k"; - fetchSubmodules = false; - date = "2020-07-21T12:32:51+02:00"; - deepClone = false; - leaveDotGit = false; - path = "/nix/store/hsi8xvl15w6fwlqvs042m1z5i88yc72i-d2sqlite3"; - }; -} { - fetch = { - type = "git"; - url = "https://github.com/kiith-sa/tinyendian.git"; - rev = "v0.2.0"; - sha256 = "086gf5aga52wr5rj2paq54daj8lafn980x77b706vvvqaz2mlis8"; - fetchSubmodules = false; - date = "2018-06-10T11:04:28+02:00"; - deepClone = false; - leaveDotGit = false; - path = "/nix/store/9c7fsmi5am84j6dq2mp3va306x3ay291-tinyendian"; - }; -} { - fetch = { - type = "git"; - url = "https://github.com/kiith-sa/D-YAML.git"; - rev = "v0.8.3"; - sha256 = "13wy304xjbwkpgg7ilql1lkxkm83s87jm59ffnrg26slp7cx149q"; - fetchSubmodules = false; - date = "2020-09-19T23:46:57+02:00"; - deepClone = false; - leaveDotGit = false; - path = "/nix/store/3i8i56lkmw2xq3lxr5h66v909waq2mqg-D-YAML"; - }; -} { - fetch = { - type = "git"; - url = "https://github.com/lgvz/imageformats.git"; - rev = "v7.0.2"; - sha256 = "1mfbsmi4fs1xny4zqs6jyr04d5f4h03r9f6jadvkdqj5kd1k0ws7"; - fetchSubmodules = false; - date = "2019-10-10T07:54:45+03:00"; - deepClone = false; - leaveDotGit = false; - path = "/nix/store/wn554pn21nzmpvw2hs7hvv9v9y0sgarg-imageformats"; - }; -} ] -#+END_SRC - -*** dub2nix & shared pkgs SHARED -**** dub2nix with pkgs shared - -#+NAME: nix_with_pkgs -#+HEADER: :noweb yes -#+BEGIN_SRC nix -with pkgs; [ - <<nix_shell_with_pkgs_list>> -] -#+END_SRC - -**** with pkgs list - -#+NAME: nix_shell_with_pkgs_list -#+BEGIN_SRC nix -nixVersions.unstable #nixFlakes -rund -dub -ldc -sqlite -nix-prefetch-git -validatePkgConfig -jq -git -#+END_SRC - ** variables -*** spine version SET VERSION :version:set:project: +*** sisu version SET VERSION :version:set:project: #+NAME: sisu_version_set #+BEGIN_SRC sh @@ -956,14 +288,14 @@ git *** set names SET -#+NAME: spine_search_db +#+NAME: sisu_search_db #+BEGIN_SRC sh -spine.search.db +sisu.search.db #+END_SRC -#+NAME: spine_search_cgi +#+NAME: sisu_search_cgi #+BEGIN_SRC sh -spine_search +sisu_search #+END_SRC *** nixpkgs_path SETUP @@ -994,13 +326,13 @@ nixpkgs=<<nixpkgs_path_local>> #+NAME: project_path_local_project #+HEADER: :noweb yes #+BEGIN_SRC nix -~/grotto/repo/git.repo/projects/project-spine/doc-reform +~/grotto/repo/git.repo/projects/project-sisu/sisu #+END_SRC #+NAME: project_path_local_src #+HEADER: :noweb yes #+BEGIN_SRC nix -<<project_path_local_project>>/src +<<project_path_local_project>>/lib #+END_SRC #+NAME: project_path_local_bin @@ -1016,24 +348,24 @@ nixpkgs=<<nixpkgs_path_local>> #+NAME: project_path_local_doc #+BEGIN_SRC nix -~/grotto/repo/git.repo/projects/project-spine/doc-reform-markup/spine-markup-samples +~/grotto/repo/git.repo/projects/project-sisu/sisu-markup/sisu-markup-samples #+END_SRC #+NAME: project_path_local_out #+BEGIN_SRC nix -/srv/www/spine/$SpineVER +/srv/www/sisu #+END_SRC #+NAME: project_path_local_out_ #+HEADER: :noweb yes #+BEGIN_SRC nix -/tmp/spine/$SpineVER/www +/tmp/sisu/$SisuVER/www #+END_SRC #+NAME: project_path_local_out_static #+HEADER: :noweb yes #+BEGIN_SRC nix -/srv/www/spine +/srv/www/sisu #+END_SRC #+NAME: project_path_local_out_static_ @@ -1048,6 +380,10 @@ nixpkgs=<<nixpkgs_path_local>> #+NAME: nixpkgs_url #+BEGIN_SRC nix +github:NixOS/nixpkgs/nixpkgs-unstable +#+END_SRC + +#+BEGIN_SRC nix github:nixos/nixpkgs #+END_SRC @@ -1063,15 +399,6 @@ github:nixos/nixpkgs /srv/nix/nixpkgs #+END_SRC -**** project path options - -- local path SET WARN - -#+NAME: nix_path_channel -#+BEGIN_SRC nix -/nix/var/nix/profiles/per-user/root/channels/nixos -#+END_SRC - ** texlive xetex xelatex shell.nix *** shell.nix :shell: @@ -1092,7 +419,7 @@ pkgs.mkShell { #(texlive.combine { # inherit (texlive) scheme-tetex xetex fontspec footmisc multirow titlesec listings anysize float graphics helvetic times courier; #}) - texlive.combined.scheme-full + texliveFull # texliveTeTeX dejavu_fonts dejavu_fontsEnv liberation_ttf evince @@ -1111,384 +438,3 @@ pkgs.mkShell { ''; } #+END_SRC - -*** notes - -#+BEGIN_SRC sh -nix-shell --run 'which xetex' -echo 'for texfile in *.tex; do echo "* --> " ~ $texfile && xelatex -interaction=batchmode $texfile; rm *.aux *.log *.toc *.out; done' - -$SpineBIN/spine --latex --serial --output="$SpineOUT" $SpinePOD/* && for texfile in $SpineOUT/latex/*.tex; do xelatex -interaction=nonstopmode $texfile; done 2>&1 | tee _err.xelatex_.org; ls $SpineOUT/latex/*.{tex,pdf} - -/run/current-system/sw/share/X11/fonts/ - -kpsewhich pdftexconfig.tex -/nix/store/2r4qa8rbll085nmpx56jg1rbmbir1zkp-texlive-combined-2021/share/texmf/tex/generic/tex-ini-files/pdftexconfig.tex -/nix/store/2r4qa8rbll085nmpx56jg1rbmbir1zkp-texlive-combined-2021/share/texmf/fonts/opentype/public/ - -find: texclive-fonts.conf -fc-cache && mkfontscale && mkfontdir - -fc-match LiberationSans - -cd /nix/var/nix/profiles/system/sw/share/X11/fonts -fc-query LiberationSans-Regular.ttf | grep '^\s\+family:' | cut -d'"' -f2 -Liberation Sans -fc-query LiberationMono-Regular.ttf | grep '^\s\+family:' | cut -d'"' -f2 -Liberation Mono - -fc-query DejaVuSans.ttf | grep '^\s\+family:' | cut -d'"' -f2 - -$XDG_DATA_HOME/fonts -~/.local/share/fonts -#+END_SRC - -** NOTES -*** nix-shell - -- default.nix - -#+BEGIN_SRC sh -nix-shell -nix-build -#+END_SRC - -- project.nix - -#+BEGIN_SRC sh -nix-shell -nix-build project.nix -#+END_SRC - -*** nix-shell --pure - -- default.nix - -#+HEADER: :noweb yes -#+BEGIN_SRC sh -nix-shell --pure -nix-build -I nixpkgs=<<nixpkgs_local>> -nix-build -I .envrc -#+END_SRC - -#+BEGIN_SRC sh -nix build -f default.nix --print-build-logs -nix build -f derivation.nix --print-build-logs -nix shell -f default.nix --print-build-logs -# nix build -f project.nix -# nix build -f spine.nix -nix develop --build -f derivation.nix -I .envrc --print-build-logs -nix develop --profile .#default --print-build-logs --command spine -v -#+END_SRC - -*** derivation .drv - -#+BEGIN_SRC sh -nix show-derivation /nix/store/q7n14bm8j5vzm62qaraczdb4bpyf59vv-spine-0.11.1.drv -#+END_SRC - -**** .env/echo-nixNote CHECK MODIFY - -#+HEADER: :tangle ../.env/nix-commands -#+BEGIN_SRC text -- nix flake update && nix flake check --show-trace && nix flake show && nix develop .#devShell - -- nix build .#default --print-build-logs -- nix build .#spine-dmd --print-build-logs -- nix build .#spine-ldc --print-build-logs -- nix build .#spine-gdc --print-build-logs - -- nix develop - - nix develop .#devShell --print-build-logs - - nix develop .#devShell-html --print-build-logs - - nix develop .#devShell-epub --print-build-logs - - nix develop .#devShell-latex-pdf --print-build-logs - - nix develop .#devShell-sqlite --print-build-logs - - nix develop .#devShell-i18n --print-build-logs - -nix run .#default --print-build-logs - -nix develop --build .#default --print-build-logs - -nix-shell '<nixpkgs>' -A nix --pure -#+END_SRC - -#+HEADER: :tangle ../.env/echo-nixNote -#+BEGIN_SRC sh -echo '-*- mode: org -*- - -,* nixpkgs path? - - # eval "$(nix print-dev-env)" -' > nixNote_.org - -echo " <nixpkgs> == `nix-instantiate --find-file nixpkgs`" >> nixNote_.org - -echo ' -,* nix build and show derivation - -,#+BEGIN_SRC sh -nix-shell --pure - -nix-build -nix build -f default.nix --print-build-logs -nix shell -f default.nix --print-build-logs -nix develop --build -f derivation.nix -I .envrc --print-build-logs - -nix-instantiate | nix-build - -nix-instantiate -I .envrc | nix-build -I .envrc -nix build `nix-instantiate` -nix build `nix-instantiate -I .envrc` - -nix develop - -nix-instantiate | nix show-derivation | jq -nix-instantiate -I .envrc | nix show-derivation -f derivation.nix -I .envrc | jq - -nix-instantiate | nix show-derivation --recursive | jq -nix-instantiate -I .envrc | nix show-derivation -f derivation.nix --recursive -I .envrc | jq - -nix search --json 2>/dev/null |jq -,#+END_SRC - -,* version and build info - -,#+BEGIN_SRC sh' >> nixNote_.org - -echo 'spine version (git) == $SpineVER' >> nixNote_.org -echo "spine version (git) == $SpineVER" >> nixNote_.org -echo 'nix-instantiate == `nix-instantiate`' >> nixNote_.org -echo "nix-instantiate == `nix-instantiate`" >> nixNote_.org - -echo "#+END_SRC - -,* initialised shell variables - -,#+BEGIN_SRC sh -SpineSRC=$SpineSRC -SpineDOC=$SpineDOC -SpinePOD=$SpinePOD -SpineOUTversioned=$SpineOUTversioned -SpineOUT=$SpineOUT -,#+END_SRC -" >> nixNote_.org - -echo '* spine run instruction examples -,** parallelized tasks -,*** doc source - -,#+BEGIN_SRC sh -$SpineBIN/spine --very-verbose --pod --source --output="$SpineOUTversioned" $SpinePOD/* -,#+END_SRC - -,*** html & epub output - -,#+BEGIN_SRC sh -$SpineBIN/spine --very-verbose --html --epub --output="$SpineOUTversioned" $SpinePOD/* -,#+END_SRC - -,*** sqlite db for each document - populate each db - -,#+BEGIN_SRC sh -$SpineBIN/spine --very-verbose --sqlite-discrete --output="$SpineOUTversioned" $SpinePOD/* -,#+END_SRC - -,*** doc source; html, epub; sqlite outputs - -,#+BEGIN_SRC sh -$SpineBIN/spine --verbose --pod --html --epub --sqlite-discrete --output="$SpineOUTversioned" $SpinePOD/* -,#+END_SRC - -,*** curate (authors topics) - -,#+BEGIN_SRC sh -$SpineBIN/spine --very-verbose --curate --output="$SpineOUTversioned" $SpinePOD/* -,#+END_SRC - -,*** html, curate - -,#+BEGIN_SRC sh -$SpineBIN/spine --verbose --dark --html --html-link-curate --curate --output="$SpineOUTversioned" $SpinePOD/* -$SpineBIN/spine --very-verbose --html --html-link-curate --curate --output="$SpineOUTversioned" $SpinePOD/* -,#+END_SRC - -,*** composite command: source pod, html, epub, curate, sqlite - -,#+BEGIN_SRC sh -$SpineBIN/spine --verbose --dark --pod --epub --html --html-link-curate --curate --sqlite-discrete --output="$SpineOUTversioned" $SpinePOD/* -,#+END_SRC - -,** sequential tasks -,*** sqlite db (shared) - create db - -,#+BEGIN_SRC sh -$SpineBIN/spine --very-verbose --sqlite-db-create --output="$SpineOUTversioned" -,#+END_SRC - -,*** sqlite db (shared) - populate db - -,#+BEGIN_SRC sh -$SpineBIN/spine --very-verbose --sqlite-update --output="$SpineOUTversioned" $SpineDOC/spine-markup-samples/markup/pod/* -,#+END_SRC - -,*** sqlite db (shared) - drop db - -,#+BEGIN_SRC sh -$SpineBIN/spine --very-verbose --sqlite-db-drop --output="$SpineOUTversioned" -,#+END_SRC - -,*** sqlite db (shared) - create & populate db (single step) - -,#+BEGIN_SRC sh -$SpineBIN/spine --very-verbose --sqlite-db-create --sqlite-update --output="$SpineOUTversioned" $SpinePOD/* -,#+END_SRC - -,*** composite command: source pod, html, epub, curate, sqlite - -,#+BEGIN_SRC sh -$SpineBIN/spine --verbose --no-parallel --dark --pod --epub --html --html-link-curate --curate --sqlite-discrete --output="$SpineOUTversioned" $SpinePOD/* -,#+END_SRC - -,** config [./pod/].dr/config_local_site - -,#+BEGIN_SRC sh -cat $SpinePOD/.dr/config_local_site -$SpineBIN/spine --show-config $SpinePOD -$SpineBIN/spine --show-config --output="$SpineOUTversioned" $SpinePOD -,#+END_SRC - -,** cgi operations (output to $SpineOUT /var/www) - -,#+BEGIN_SRC sh -$SpineBIN/spine --very-verbose --sqlite-db-create --output="$SpineOUT" $SpinePOD/* - -$SpineBIN/spine -v --cgi-search-form-codegen --output=$SpineOUT $SpinePOD/* - -$SpineBIN/spine -v --show-config --config=$SpinePOD/.dr - -$SpineBIN/spine --html $SpinePOD/* - - -$SpineBIN/spine -v --cgi-search-form-codegen --config=$SpinePOD/.dr/config_local_site -,#+END_SRC - -,*** generate html linked to search form - -,#+BEGIN_SRC sh -$SpineBIN/spine -v --html --html-link-search --html-link-curate --curate --output=$SpineOUT $SpinePOD/* -,#+END_SRC - -,*** create or re-create sql db (--sqlite-db-create or --sqlite-db-recreate) - -,#+BEGIN_SRC sh -$SpineBIN/spine -v --sqlite-db-create --sqlite-db-filename="<<spine_search_db>>" --sqlite-db-path="$SpineDBpath" -$SpineBIN/spine -v --sqlite-db-recreate --sqlite-db-filename="<<spine_search_db>>" --sqlite-db-path="$SpineDBpath" -,#+END_SRC - -,*** populate sqlite db - -,#+BEGIN_SRC sh -$SpineBIN/spine -v --sqlite-update --sqlite-db-filename="<<spine_search_db>>" --output=$SpineOUT $SpinePOD/* -,#+END_SRC - -,*** generate html (linked to search form), sql output, curate COMPOSITE - -,#+BEGIN_SRC sh -$SpineBIN/spine -v --html --html-link-search --html-link-curate --curate --sqlite-update --sqlite-db-filename="<<spine_search_db>>" --cgi-sqlite-search-filename="<<spine_search_cgi>>" --sqlite-db-path="$SpineDBpath" --output="$SpineOUT" $SpinePOD/* -$SpineBIN/spine --epub --html --html-link-search --html-link-curate --curate --sqlite-update --sqlite-db-filename="spine.search.db" --cgi-sqlite-search-filename="spine_search" --cgi-url-action="https://sisudoc.org/spine_search" --ouput="$SpineOUT" $SpinePOD/* -,#+END_SRC - -,*** generate html (linked to search form), sql output, curate COMPOSITE with resource configuration - -if names and paths are configured in resource configuration file, e.g. $SpinePOD/.rc/config_local_site - -,#+BEGIN_SRC sh -$SpineBIN/spine -v --html --html-link-search --html-link-curate --curate --sqlite-update $SpinePOD/* -,#+END_SRC - -,#+BEGIN_SRC yaml -# sample resource configuration file ( $SpinePOD/.rc/config_local_site ) -output: - path: "/srv/www/spine" -default: - language: "en" - papersize: "a4" - text_wrap: "80" - digest: "sha256" -webserv: - http: "http" - domain: "localhost" - data_http: "http" - data_domain: "localhost" - data_root_url: "https://sisudoc.org" - data_root_path: "/srv/www/spine" - images_root_part: "image" - cgi_search_form_title: "≅ SiSU Spine search" - cgi_http: "https" - cgi_domain: "sisudoc.org" - cgi_bin_url: "http://sisudoc.org/cgi-bin" - cgi_bin_part: "cgi-bin" - cgi_bin_path: "/var/www/cgi/cgi-bin" - cgi_search_script: "<<spine_search_cgi>>" - cgi_action: "https://sisudoc.org/spine_search" - db_sqlite_filename: "<<spine_search_db>>" - db_sqlite_path: "/var/www/sqlite" -,#+END_SRC - -,*** make search form - -,#+BEGIN_SRC sh -$SpineBIN/spine -v --cgi-search-form-codegen --config=$SpinePOD/.dr/config_local_site -,#+END_SRC - -,*** latex - -,#+BEGIN_SRC sh -$SpineBIN/spine --latex --serial --output="$SpineOUT" $SpinePOD/* -ls $SpineOutstatic/latex/*.tex -,#+END_SRC -' >> nixNote_.org - -#cat nixNote_.org - -#echo "emacs nixNote_.org" -#echo "cat nixNote_.org" -#+END_SRC - -*** makefile - -#+HEADER: :tangle-NO ../makefile_ -#+BEGIN_SRC make -buildPhase: - HOME=$${PWD}; \ - for DC_ in dmd ldmd2 gdmd; do \ - echo "- check for D compiler $${DC_}"; \ - DC=$$(type -P $${DC_} || echo ""); \ - if [ ! "$${DC}" == "" ]; then \ - break; \ - fi; \ - done; \ - echo "D compiler = $${DC}"; \ - if [ "$${DC}" == "" ]; then \ - echo "Error: could not find D compiler"; \ - exit 1; \ - fi; \ - echo "$${DC_} used as D compiler to build $${pname}"; \ - export DFLAGS="-O2 -inline"; \ - dub build --compiler=$${DC} --build=release --combined --skip-registry=all; -checkPhase: - runHook preCheck; \ - HOME=$${PWD}; \ - dub test --combined --skip-registry=all; \ - runHook postCheck -installPhase: - runHook preInstall; \ - mkdir -p $${out}/bin; \ - install -m755 ./bin/spine $${out}/bin/spine; \ - runHook postInstall - #cp -r bin/spine $out/bin/. -postInstall: - echo "$${out}/share/cgi-bin"; \ - echo `ls -la $${out}/bin/spine` -#+END_SRC |