From 59456d7b2c1e2a064989a455669737ccf3b3e2a9 Mon Sep 17 00:00:00 2001 From: Ralph Amissah Date: Fri, 13 Sep 2024 11:26:46 -0400 Subject: org, nix config related --- .envrc | 3 + .envrc-nix | 34 +++---- org/config_env.org | 253 +++++++++++++++++++++++++++++++++++++++++++++++++++++ org/config_nix.org | 115 ++---------------------- 4 files changed, 280 insertions(+), 125 deletions(-) create mode 100644 org/config_env.org diff --git a/.envrc b/.envrc index 6ad5fe23..669d42f5 100644 --- a/.envrc +++ b/.envrc @@ -1,3 +1,6 @@ +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 diff --git a/.envrc-nix b/.envrc-nix index c495b719..0f5824ce 100644 --- a/.envrc-nix +++ b/.envrc-nix @@ -1,9 +1,7 @@ NIX_ENFORCE_PURITY=1 # - https://github.com/nix-community/nix-direnv -#NixDirEnvSHA="sha256-0000000000000000000000000000000000000000000=" -#direnv fetchurl https://raw.githubusercontent.com/nix-community/nix-direnv/${NixDirEnvVersion}/direnvrc -NixDirEnvVersion="2.4.0" -NixDirEnvSHA="sha256-XQzUAvL6pysIJnRJyR7uVpmUSZfc7LSgWQwq/4mBr1U=" +NixDirEnvVersion="3.0.0" +NixDirEnvSHA="sha256-21TMnI2xWX7HkSTjFFri2UaohXVj854mgvWapWrxRXg=" if ! has nix_direnv_version || ! nix_direnv_version ${NixDirEnvVersion}; then source_url "https://raw.githubusercontent.com/nix-community/nix-direnv/${NixDirEnvVersion}/direnvrc" "${NixDirEnvSHA}" fi @@ -11,17 +9,23 @@ watch_file flake.lock watch_file flake.nix watch_file shell.nix watch_file makefile -watch_file .envrc +watch_file nixDevEnv.sh watch_file .envrc-local watch_file .envrc-nix -nix_direnv_watch_file flake.nix -nix_direnv_watch_file shell.nix -nix_direnv_watch_file .envrc -nix_direnv_watch_file .envrc-local -nix_direnv_watch_file .envrc-nix -#nix flake update -#nix flake check -echo "" PATH_add result/bin -nix flake show -#use flake . +use flake . +echo " +- consider running: + ❯❯ nix flake show + ❯❯ nix flake update && nix flake check && nix flake show + +- for a dev shell: + ❯❯ 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 +" diff --git a/org/config_env.org b/org/config_env.org new file mode 100644 index 00000000..1609a97d --- /dev/null +++ b/org/config_env.org @@ -0,0 +1,253 @@ +-*- mode: org -*- +#+TITLE: configuration env +#+DESCRIPTION: env envrc used by make & 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 +#+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 sh +if [ -f .envrc ]; then + source_env_if_exists .envrc || source .envrc +fi +#+END_SRC + +** envrc :envrc: +*** .envrc + +- https://github.com/nix-community/nix-direnv + - source_url "https://raw.githubusercontent.com/nix-community/nix-direnv/${NixDirEnvVersion}/direnvrc" "sha256-0000000000000000000000000000000000000000000=" + +#+NAME: envrc +#+HEADER: :tangle ../.envrc +#+BEGIN_SRC sh +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 +#+END_SRC + +*** .envrc-nix + +- https://github.com/nix-community/nix-direnv + - source_url + - direnv fetchurl "https://raw.githubusercontent.com/nix-community/nix-direnv/<>/direnvrc" "<>" + - ${NixDirEnvVersion} + +#+HEADER: :tangle ../.envrc-nix +#+BEGIN_SRC sh +NIX_ENFORCE_PURITY=1 +# - https://github.com/nix-community/nix-direnv +NixDirEnvVersion="<>" +NixDirEnvSHA="<>" +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: + ❯❯ 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.0 + +#+NAME: direnv-version +#+BEGIN_SRC sh +3.0.0 +#+END_SRC + +#+NAME: direnv-sha +#+BEGIN_SRC sh +sha256-21TMnI2xWX7HkSTjFFri2UaohXVj854mgvWapWrxRXg= +#+END_SRC + +*** 2.4.0 + +#+BEGIN_SRC sh +2.4.0 +#+END_SRC + +#+BEGIN_SRC sh +sha256-XQzUAvL6pysIJnRJyR7uVpmUSZfc7LSgWQwq/4mBr1U= +#+END_SRC + +#+BEGIN_SRC sh +2.3.0 +#+END_SRC + +#+BEGIN_SRC sh +sha256-Dmd+j63L84wuzgyjITIfSxSD57Tx7v51DMxVZOsiUD8= +#+END_SRC + +#+NAME: direnv-sha_ +#+BEGIN_SRC sh +sha256-0000000000000000000000000000000000000000000= +#+END_SRC + +#+BEGIN_SRC sh +- 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 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 DFLAGS="-O2 -inline -boundscheck=on -color=on" +export SpineVER=$(git describe --long --tags | sed 's/^[ a-z_-]\+\([0-9.]\+\)/\1/;s/\([^-]*-g\)/r\1/;s/-/./g') +export SpineBIN=result/bin +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 SpinePOD=${SpineDOC}/markup/pod +export SpineOUT=/srv/www/spine +export SpineOUTversioned=/srv/www/spine/${SpineVER} +export SpineSearchActionLocal='http://localhost/spine_search' +export SpineSearchActionRemote='https://sisudoc.org/spine_search' +export SpineCGIform='spine_search' +export SpineSQLdb='spine.search.db' +export SpineCGIbin=/var/www/cgi/cgi-bin +export SpineDBpath=/var/www/sqlite +#export SpineDBpath=/srv/www/spine/sqlite +#+END_SRC + +#+HEADER: :tangle-NO ../.envrc-local +#+HEADER: :noweb yes +#+BEGIN_SRC sh +if [[ ! -d ./.git ]]; then + git init + git add . +fi +echo ' + .envrc-local echo ❯❯ + + ❯❯ nix flake update && nix flake check --show-trace && nix flake show && nix develop ".#devShell" -c $SHELL + + ❯❯ nix develop + ❯❯ nix develop -c $SHELL + ❯❯ nix develop ".#dsh-overlay-ldc" --print-build-logs + + ❯❯ nix build + ❯❯ nix build ".#default" --print-build-logs +' +#+END_SRC + +#+BEGIN_SRC sh +#export NIX_PATH=/nix/var/nix/profiles/per-user/root/channels/nixos +#export NIX_PATH=/srv/nix/nixpkgs +#export NIX_PATH=nixpkgs=/srv/nix/nixpkgs +#+END_SRC + +*** .envrc-local CHECK MODIFY + +- bespoke modify appropriately and generate if needed + +#+HEADER: :tangle ../.envrc-local_ +#+HEADER: :noweb yes +#+BEGIN_SRC sh +export NIX_PATH=/nix/var/nix/profiles/per-user/root/channels/nixos +#export NIX_PATH=nixpkgs=/nixpkgs-ra/nixpkgs +## reload when these files change +use flake +watch_file flake.nix +#eval "$(nix print-dev-env)" +export sisuVER=$(git describe --long --tags | sed 's/^[ a-z_-]\+\([0-9.]\+\)/\1/;s/\([^-]*-g\)/r\1/;s/-/./g') +#export sisuBIN=bin +export sisuSRC=~/grotto/repo/git.repo/projects/project-sisu/sisu +export sisuDOC=~/grotto/repo/git.repo/projects/project-sisu/susu-markup/sisu-markup-samples/data/samples/current +export sisuOUT=/var/www +export sisuOUTver=/tmp/sisu/$sisuVER/www +export RUBYLIB+=`pwd`/lib +#+END_SRC + +#+BEGIN_SRC sh + export Date=`date "+%Y%m%d"` + export sisuver=$(git describe --long --tags | sed 's/^[ a-z_-]\+\([0-9.]\+\)/\1/;s/\([^-]*-g\)/r\1/;s/-/./g') + ### 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 sisuSRC=~/grotto/repo/git.repo/projects/project-sisu/sisu + # export sisuDOC=~/grotto/repo/git.repo/projects/project-sisu/susu-markup/sisu-markup-samples/data/samples/current + # export sisuOUT=/srv/www/sisu + # export sisuOUTver=/srv/www/sisu/$sisuVER/www + # 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/*" +#+END_SRC + + diff --git a/org/config_nix.org b/org/config_nix.org index ca7bfc12..200fe7f2 100644 --- a/org/config_nix.org +++ b/org/config_nix.org @@ -25,111 +25,6 @@ - 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 -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 -#+END_SRC - -*** .envrc-nix - -#+HEADER: :tangle ../.envrc-nix -#+BEGIN_SRC sh -NIX_ENFORCE_PURITY=1 -# - https://github.com/nix-community/nix-direnv -#NixDirEnvSHA="sha256-0000000000000000000000000000000000000000000=" -#direnv fetchurl https://raw.githubusercontent.com/nix-community/nix-direnv/${NixDirEnvVersion}/direnvrc -NixDirEnvVersion="2.4.0" -NixDirEnvSHA="sha256-XQzUAvL6pysIJnRJyR7uVpmUSZfc7LSgWQwq/4mBr1U=" -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 .envrc -watch_file .envrc-local -watch_file .envrc-nix -nix_direnv_watch_file flake.nix -nix_direnv_watch_file shell.nix -nix_direnv_watch_file .envrc -nix_direnv_watch_file .envrc-local -nix_direnv_watch_file .envrc-nix -#nix flake update -#nix flake check -echo "" -PATH_add result/bin -nix flake show -#use flake . -#+END_SRC - -*** .envrc-local CHECK MODIFY - -- bespoke modify appropriately and generate if needed - -#+HEADER: :tangle ../.envrc-local_ -#+HEADER: :noweb yes -#+BEGIN_SRC sh -export NIX_PATH=/nix/var/nix/profiles/per-user/root/channels/nixos -#export NIX_PATH=nixpkgs=/nixpkgs-ra/nixpkgs -## reload when these files change -use flake -watch_file flake.nix -#eval "$(nix print-dev-env)" -export sisuVER=$(git describe --long --tags | sed 's/^[ a-z_-]\+\([0-9.]\+\)/\1/;s/\([^-]*-g\)/r\1/;s/-/./g') -#export sisuBIN=bin -export sisuSRC=~/grotto/repo/git.repo/projects/project-sisu/sisu -export sisuDOC=~/grotto/repo/git.repo/projects/project-sisu/susu-markup/sisu-markup-samples/data/samples/current -export sisuOUT=/var/www -export sisuOUTver=/tmp/sisu/$sisuVER/www -export RUBYLIB+=`pwd`/lib -#+END_SRC - -#+BEGIN_SRC sh - export Date=`date "+%Y%m%d"` - export sisuver=$(git describe --long --tags | sed 's/^[ a-z_-]\+\([0-9.]\+\)/\1/;s/\([^-]*-g\)/r\1/;s/-/./g') - ### 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 sisuSRC=~/grotto/repo/git.repo/projects/project-sisu/sisu - # export sisuDOC=~/grotto/repo/git.repo/projects/project-sisu/susu-markup/sisu-markup-samples/data/samples/current - # export sisuOUT=/srv/www/sisu - # export sisuOUTver=/srv/www/sisu/$sisuVER/www - # 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/*" -#+END_SRC - ** flake :flake: *** flake **** flake.nix @@ -147,7 +42,7 @@ export RUBYLIB+=`pwd`/lib flake-utils, } @ inputs: let pname = "sisu"; - version = "<>"; + version = "<>"; shell = ./shell.nix; # ./default.nix; devEnv = ./shell.nix; # ./.envrc; # ./shell.nix; # ./default.nix; supportedSystems = ["x86_64-linux"]; # [ "x86_64-linux" "x86_64-darwin" "aarch64-linux" "aarch64-darwin" ]; @@ -519,9 +414,9 @@ 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 -7.3.1 +#+NAME: sisu_project_version +#+BEGIN_SRC emacs-lisp +<<./sisu_version_info_and_doc_header_including_copyright_and_license.org:sisu_project_version()>> #+END_SRC -- cgit v1.2.3