From f4a280dc6a869c540975b697f614c5172007d7a2 Mon Sep 17 00:00:00 2001 From: Ralph Amissah Date: Mon, 13 May 2024 15:47:09 -0400 Subject: nix flake and envrc related --- org/config_env.org | 80 ++++++++++++-- org/config_nix.org | 306 ++--------------------------------------------------- 2 files changed, 83 insertions(+), 303 deletions(-) (limited to 'org') diff --git a/org/config_env.org b/org/config_env.org index 403d6b5..a482da8 100644 --- a/org/config_env.org +++ b/org/config_env.org @@ -4,7 +4,7 @@ #+FILETAGS: :spine: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 - 2024 Ralph Amissah #+LANGUAGE: en #+STARTUP: content hideblocks hidestars noindent entitiespretty #+PROPERTY: header-args :exports code @@ -76,7 +76,8 @@ echo ' ❯❯ nix flake show ❯❯ nix flake update && nix flake check && nix flake show -- for a dev shell: +- for a dev shell (development environment): + ❯❯ nix develop ❯❯ nix develop ".#" --print-build-logs -c zsh ❯❯ nix develop ".#dsh" --print-build-logs -c zsh @@ -89,18 +90,36 @@ echo ' ❯❯ nix develop ".#dsh-sqlite" --print-build-logs -c zsh - to build project: + ❯❯ nix build --print-build-logs ❯❯ nix build ".#" --print-build-logs + +- to build project: ❯❯ nix build ".#spine-nixpkgs-dmd" --print-build-logs ❯❯ nix build ".#spine-overlay-dmd" --print-build-logs ❯❯ nix build ".#spine-nixpkgs-ldc" --print-build-logs ❯❯ nix build ".#spine-overlay-ldc" --print-build-logs - - (see nix other/additional build options): - ❯❯ nix flake show - ❯❯ nix flake update && nix flake check --show-trace && nix flake show && nix develop ".#devShell" -c zsh - ❯❯ dub build --compiler=ldmd --build=release --combined --skip-registry=all +- to build using dub (on nix or otherwise): + + you need to be in sisudoc-spine to use source code tree directly. + +- for develop environment & build options + + ❯❯ nix flake update && nix flake check && nix flake show + ❯❯ nix flake show + +- if on nix: build the sisudoc-spine using nix build commands above and + run the result against the sample files here in the sisudoc-spine-samples dir + (assuming the appropriate paths have been set in your .envrc-local) + + ❯❯ ${SpineBIN} -v --source --pod --epub --html --html-link-curate --html-link-markup --curate --output=${SpineOUT} ${SpinePOD}/* + ❯❯ ${SpineBIN} -v --source --pod --latex --latex-init --epub --html --html-link-pdf --html-link-curate --html-link-markup --curate --output=${SpineOUT} ${SpinePOD}/* ' +echo "- + ❯❯ ${SpineBIN} -v --source --pod --epub --html --html-link-curate --html-link-markup --curate --output=${SpineOUT} ${SpinePOD}/* + ❯❯ ${SpineBIN} -v --source --pod --latex --latex-init --epub --html --html-link-pdf --html-link-curate --html-link-markup --curate --output=${SpineOUT} ${SpinePOD}/* +" #+END_SRC *** 3.0.4 @@ -153,3 +172,52 @@ sha256-0000000000000000000000000000000000000000000= 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 sh +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 sh +export SpineBIN=./result/bin/spine +# ❯❯ nix builds spine binary: +#export SpineBIN=./result/bin/spine +# ❯❯ if from ../sisudoc-spine on directory tree nix build +#export SpineBIN=../sisudoc-spine/result/bin/spine +# ❯❯ dub builds spine binary (name depends on build, check): +#export SpineBIN=../sisudoc-spine/bin/spine +#export SpineBIN=../sisudoc-spine/bin/spine-ldc +#export SpineBIN=../sisudoc-spine/bin/spine-dmd +# ❯❯ location of source files: +export SpineDOC=. +# ❯❯ location of source files pod: +export SpinePOD=${SpineDOC}/markup/pod +# ❯❯ sisudoc-spine output processing path: +export SpineOUT=./OUTPUT_TEST_sisudocSpine +# ❯❯ sisudoc-spine output processing path (web server e.g.): +#export SpineOUT=/srv/www/spine +# ❯❯ path configured for cgi search form: +export SpineSearchActionLocal='http://localhost/spine_search' +export SpineSearchActionRemote='https://sisudoc.org/spine_search' +# ❯❯ cgi search form name: +export SpineCGIform='spine_search' +# ❯❯ search form db name: +export SpineSQLdb='spine.search.db' +# ❯❯ configuration cgi search form path: +export SpineCGIbin=/var/www/cgi/cgi-bin +# ❯❯ configuration db path: +export SpineDBpath=/var/www/sqlite +#export SpineDBpath=/srv/www/spine/sqlite +#+END_SRC diff --git a/org/config_nix.org b/org/config_nix.org index 391f739..2485dab 100644 --- a/org/config_nix.org +++ b/org/config_nix.org @@ -70,9 +70,9 @@ devShells = forAllSystems (system: let pkgs = nixpkgsFor.${system}; shellHook = '' - export DFLAGS="-O2 -boundscheck=on" export Date=`date "+%Y%m%d"` ## set local values in .envrc-local (or here if you must) + echo " ❯❯ ./result/bin/spine -v --source --pod --epub --html --html-link-pdf --html-link-curate --html-link-markup --curate --output=./OUTPUT_TEST_sisudocSpine ./markup/pod/*"; ''; in with pkgs; { @@ -132,6 +132,13 @@ dub gnumake sqlite + # ❯❯ text-mode web browsers + elinks + links2 + lynx + w3m + # ❯❯ light graphical + #dillo ]; inherit shellHook; }; @@ -247,28 +254,6 @@ with pkgs; } #+END_SRC -#+BEGIN_SRC nix - shellHook = '' - echo ' - shell.nix echo ❯❯ - - ❯❯ nix flake update && nix flake check --show-trace && nix flake show && nix develop ".#devShell" -c zsh - - ❯❯ nix develop - ❯❯ nix develop -c zsh - ❯❯ nix develop ".#default" -c zsh - ❯❯ nix develop ".#devShell-ldc-overlay" -c zsh - - ❯❯ nix build - ❯❯ nix build ".#default" --print-build-logs - ❯❯ nix build ".#spine-ldc" --print-build-logs |& nom - - - ❯❯ nix profile install . - ' - ''; -#+END_SRC - #+HEADER: :tangle ../default.nix #+HEADER: :tangle-mode (identity #o755) #+HEADER: :shebang "#!/usr/bin/env -S nix-build" @@ -387,7 +372,6 @@ with ( 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 "") @@ -399,7 +383,7 @@ with ( 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 + dub run --compiler=$DC --build=release --combined --skip-registry=all runHook postBuild ''; checkPhase = '' @@ -540,278 +524,6 @@ github:NixOS/nixpkgs/nixpkgs-unstable <> #+END_SRC -** .env/echo-nixNote CHECK MODIFY -*** notes on nix commands - -#+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 '' -A nix --pure -#+END_SRC - -*** echo-nixNote - -#+HEADER: :tangle ../.env/echo-nixNote -#+BEGIN_SRC sh -echo '-*- mode: org -*- - -,* nixpkgs path? - - # eval "$(nix print-dev-env)" -' > nixNote_.org - -echo " == `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/sisudoc-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="<>" --sqlite-db-path="$SpineDBpath" -$SpineBIN/spine -v --sqlite-db-recreate --sqlite-db-filename="<>" --sqlite-db-path="$SpineDBpath" -,#+END_SRC - -,*** populate sqlite db - -,#+BEGIN_SRC sh -$SpineBIN/spine -v --sqlite-update --sqlite-db-filename="<>" --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="<>" --cgi-sqlite-search-filename="<>" --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: "<>" - cgi_action: "https://sisudoc.org/spine_search" - db_sqlite_filename: "<>" - 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 - ** version info SET VERSION :version:set:project: *** spine project VERSION :version:set:project: -- cgit v1.2.3