diff options
| -rw-r--r-- | .envrc | 17 | ||||
| -rw-r--r-- | .envrc-local_ | 12 | ||||
| -rw-r--r-- | .envrc-nix | 17 | ||||
| -rw-r--r-- | .gitignore | 1 | ||||
| -rw-r--r-- | flake.lock | 14 | ||||
| -rw-r--r-- | flake.nix | 43 | ||||
| -rw-r--r-- | makefile | 127 | ||||
| -rw-r--r-- | org/config_env.org | 108 | ||||
| -rw-r--r-- | org/config_git.org | 3 | ||||
| -rw-r--r-- | org/config_make.org | 131 | ||||
| -rw-r--r-- | org/config_nix.org | 107 | ||||
| -rwxr-xr-x | shell.nix | 3 | 
12 files changed, 325 insertions, 258 deletions
| @@ -1,17 +1,6 @@ -NIX_ENFORCE_PURITY=1 -# - https://github.com/nix-community/nix-direnv -NixDirEnvVersion="2.2.1" -NixDirEnvSHA="sha256-zelF0vLbEl5uaqrfIzbgNzJWGmLzCmYAkInj/LNxvKs=" -#NixDirEnvSHAget="sha256-0000000000000000000000000000000000000000000=" -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 makefile  if [ -f .envrc-local ]; then    source_env_if_exists .envrc-local || source .envrc-local  fi -PATH_add result/bin -use flake . -#use flake .#default +if [ -f .envrc-nix ]; then +  source_env_if_exists .envrc-nix || source .envrc-nix +fi diff --git a/.envrc-local_ b/.envrc-local_ index 0f0949b..76d499d 100644 --- a/.envrc-local_ +++ b/.envrc-local_ @@ -1,15 +1,13 @@ -#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  export DFLAGS="-O2 -inline -boundscheck=on -color=on" -#export SpineBIN=result/bin +export SpineBIN=result/bin  export SpinePROJ=~/grotto/repo/git.repo/projects/doc-reform/code/software/spine  export SpineDOC=. +export SpinePOD=${SpineDOC}/markup/pod  export SpineOUT=/srv/www/spine -export SpineDBpath=/var/www/sqlite -#export SpineDBpath=/srv/www/spine/sqlite -export SpineCGIbin=/var/www/cgi/cgi-bin  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 diff --git a/.envrc-nix b/.envrc-nix new file mode 100644 index 0000000..579e33c --- /dev/null +++ b/.envrc-nix @@ -0,0 +1,17 @@ +NIX_ENFORCE_PURITY=1 +NixDirEnvVersion="2.3.0" +NixDirEnvSHA="sha256-Dmd+j63L84wuzgyjITIfSxSD57Tx7v51DMxVZOsiUD8=" +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 makefile +watch_file .envrc-local +watch_file .envrc-nix +PATH_add result/bin +nix flake update +nix flake check +nix flake show +use flake . +#use flake .#default @@ -10,6 +10,7 @@  !*.nix  !flake.lock  !.envrc +!.envrc-nix  !.env  !.env/**  !README @@ -38,11 +38,11 @@      },      "nixpkgs": {        "locked": { -        "lastModified": 1681956304, -        "narHash": "sha256-unQAkIwasSPc51R+CHF+r+58WM4bU/lEnXPSpi6yAxg=", +        "lastModified": 1682779028, +        "narHash": "sha256-tFfSbwSLobpHRznAa35KEU3R+fsFWTlmpFhTUdXq8RE=",          "owner": "NixOS",          "repo": "nixpkgs", -        "rev": "5b7bbca14c3627153bd305bec9a71f98b56c140c", +        "rev": "54abe781c482f51ff4ff534ebaba77db5bd97442",          "type": "github"        },        "original": { @@ -67,11 +67,11 @@          ]        },        "locked": { -        "lastModified": 1682032940, -        "narHash": "sha256-VbWw3334PhRr7w/aHpddBGVbIfVCQeag9z8haxlNIFg=", +        "lastModified": 1682825487, +        "narHash": "sha256-WLJQjNca136QVybyDyxCWy5lqvoUAcfu8bfy9MRIGzo=",          "ref": "refs/heads/main", -        "rev": "cff8fea1ee232fcb751b2d6d3e7bfe4ef4060247", -        "revCount": 577, +        "rev": "d7930ad07cb9e511928b13e8d37015a56b6341b4", +        "revCount": 578,          "type": "git",          "url": "file:///home/ralph/grotto/repo/git.repo/projects/doc-reform/code/software/spine"        }, @@ -3,9 +3,11 @@    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"; -    spine.inputs.nixpkgs.follows = "nixpkgs"; -    spine.flake = true; +    spine = { +      url = "git+file:///home/ralph/grotto/repo/git.repo/projects/doc-reform/code/software/spine"; +      inputs.nixpkgs.follows = "nixpkgs"; +      flake = true; +    };    };    outputs = {      self, @@ -40,28 +42,7 @@        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/*" +        ## set local values in .envrc-local (or here if you must)        '';      in        with pkgs; { @@ -74,7 +55,7 @@            packages = [              sqlite              dub -            dmd +            #dmd              ldc              gnumake            ]; @@ -86,7 +67,7 @@            inherit devEnv;            packages = [              dub -            dmd +            #dmd              ldc              gnumake              sqlite @@ -113,7 +94,7 @@            inherit devEnv;            packages = [              dub -            dmd +            #dmd              ldc              gnumake              sqlite @@ -126,7 +107,7 @@            inherit devEnv;            packages = [              dub -            dmd +            #dmd              ldc              gnumake              sqlite @@ -143,7 +124,7 @@            inherit devEnv;            packages = [              dub -            dmd +            #dmd              ldc              gnumake              sqlite @@ -156,7 +137,7 @@            inherit devEnv;            packages = [              dub -            dmd +            #dmd              ldc              gnumake              sqlite @@ -1,3 +1,4 @@ +include .envrc-local  PROG_VER_GIT :=$(shell echo `git describe --long --tags | sed -e "s/^[ a-z_-]\+\([0-9.]\+\)/\1/;s/\([^-]*-g\)/r\1/;s/-/./g"`)  #PROG_VER_DECLARED :=$(shell echo `cat ./views/version.txt | grep --color=never "enum" | sed 's/.\+(\([0-9]\+\),[ \t]\+\([0-9]\+\),[ \t]\+\([0-9]\+\)[ \t]*).\+/\1.\2.\3/g'`)  DUB=dub @@ -28,13 +29,15 @@ $(SiSU_MARKUP_SAMPLES_FIND_PODS) | xargs  # find data/sisudir/media/text -name *.ss[tm] | sort | xargs  #  Date                    := `date "+%Y%m%d"` -SpineBIN                := "$${SpineBIN}" # './result/bin' -SpineOUT                := "$${SpineOUT}" # '/srv/www/spine' -SpinePOD                := "$${SpinePOD}" # '~/grotto/repo/git.repo/projects/doc-reform/data/markup/spine-samples/markup/pod' -SpineSearchActionLocal  := 'http://localhost/spine_search' -SpineSearchActionRemote := 'https://sisudoc.org/spine_search' -SpineCGIform            := 'spine_search' -SpineSQLdb              := 'spine.search.db' +#SpineBIN                := $(SpineBIN)                # './result/bin' +#SpineOUT                := $(SpineOUT)                # '/srv/www/spine' +#SpinePOD                := $(SpinePOD)                # 'markup/pod' +#SpineSearchActionLocal  := $(SpineSearchActionLocal)  # 'http://localhost/spine_search' +#SpineSearchActionRemote := $(SpineSearchActionRemote) # 'https://sisudoc.org/spine_search' +#SpineCGIform            := $(SpineCGIform)            # 'spine_search' +#SpineSQLdb              := $(SpineSQLdb)              # 'spine.search.db' +#SpineCGIbin             := $(SpineCGIbin)             # '/var/www/cgi/cgi-bin' +#SpineDBpath             := "$(SpineDBpath)"           # '/var/www/sqlite'  hwd                     := `pwd`  gwd                     := `pwd` + "/src/ext_depends"  deps                    := "`ls -gx './src/ext_depends'`" @@ -60,8 +63,7 @@ nix-devshell:  	nix flake update && nix flake check --show-trace && nix flake show && nix develop ".#devShell"  # nix build -build: -	nix-build +build: nix-build-default  nix-build-default:  	nix build ".#default" --print-build-logs @@ -87,58 +89,80 @@ org-tangle:  	org-tangle *.org; \  	cd - +# output local +out-local: +	$(SpineBIN)/spine -v \ +	--latex --latex-init \ +	--epub --html \ +	--html-link-search --html-link-pdf --html-link-curate --html-link-markup \ +	--cgi-sqlite-search-filename=$(SpineCGIform) --cgi-url-action=$(SpineSearchActionLocal) \ +	--sqlite-update --sqlite-db-filename=$(SpineSQLdb) \ +	--curate \ +	--output=$(SpineOUT) $(SpinePOD)/* + +# output remote +out-remote: +	$(SpineBIN)/spine -v \ +	--latex --latex-init \ +	--epub --html \ +	--html-link-search --html-link-pdf --html-link-curate --html-link-markup \ +	--cgi-sqlite-search-filename=$(SpineCGIform) --cgi-url-action=$(SpineSearchActionRemote) \ +	--sqlite-update --sqlite-db-filename="$(SpineSQLdb)" \ +	--curate \ +	--output=$(SpineOUT) $(SpinePOD)/* +  # epub output  out-epub: -	$${SpineBIN}/spine -v \ -	--epub --output=$${SpineOUT} $${SpinePOD}/* +	$(SpineBIN)/spine -v \ +	--epub --output=$(SpineOUT) $(SpinePOD)/*  # html output with local search links  out-html: -	$${SpineBIN}/spine -v --generated-by \ +	$(SpineBIN)/spine -v --generated-by \  	--curate \ -	--html --html-link-search --html-link-curate --cgi-url-action="$${SpineSearchActionLocal}" \ -	--output=$${SpineOUT} $${SpinePOD}/* +	--html --html-link-search --html-link-curate --cgi-url-action=$(SpineSearchActionLocal) \ +	--output=$(SpineOUT) $(SpinePOD)/*  # latex output  out-latex: -	$${SpineBIN}/spine -v \ +	$(SpineBIN)/spine -v \  	--latex \ -	--output=$${SpineOUT} $${SpinePOD}/* +	--output=$(SpineOUT) $(SpinePOD)/*  # odf output  out-odf: -	$${SpineBIN}/spine -v \ +	$(SpineBIN)/spine -v \  	--odf \ -	--output=$${SpineOUT} $${SpinePOD}/* +	--output=$(SpineOUT) $(SpinePOD)/*  # sqlite output  out-sqlite: -	$${SpineBIN}/spine -v \ -	--sqlite-update --sqlite-db-filename="$${SpineSQLdb}" \ -	--output=$${SpineOUT} $${SpinePOD}/* +	$(SpineBIN)/spine -v \ +	--sqlite-update --sqlite-db-filename=$(SpineSQLdb) \ +	--output=$(SpineOUT) $(SpinePOD)/*  # generate markup sample output with local search links  output-samples-local: -	$${SpineBIN}/spine -v \ +	$(SpineBIN)/spine -v \  	--latex --latex-init \  	--epub \  	--html --html-link-search --html-link-pdf --html-link-curate --html-link-markup \ -	--cgi-sqlite-search-filename="$${SpineCGIform}" --cgi-url-action="$${SpineSearchActionLocal}" \ +	--cgi-sqlite-search-filename=$(SpineCGIform) --cgi-url-action=$(SpineSearchActionLocal) \  	--curate \ -	--sqlite-update --sqlite-db-filename="$${SpineSQLdb}" \ -	--output=$${SpineOUT} $${SpinePOD}/* +	--sqlite-update --sqlite-db-filename="$(SpineSQLdb)" \ +	--output=$(SpineOUT) $(SpinePOD)/*  # generate markup sample output with remote search links  output-samples-remote: -	$${SpineBIN}/spine -v \ +	$(SpineBIN)/spine -v \  	--generated-by \  	--latex --latex-init \  	--epub \  	--html --html-link-search --html-link-pdf --html-link-curate \ -	--cgi-sqlite-search-filename="$${SpineCGIform}" --cgi-url-action="$${SpineSearchActionRemote}" \ +	--cgi-sqlite-search-filename=$(SpineCGIform) --cgi-url-action=$(SpineSearchActionRemote) \  	--curate \ -	--sqlite-update --sqlite-db-filename="$${SpineSQLdb}" \ -	--output=$${SpineOUT} $${SpinePOD}/* +	--sqlite-update --sqlite-db-filename=$(SpineSQLdb) \ +	--output=$(SpineOUT) $(SpinePOD)/*  # generate markup sample output with local search links  output-samples: output-samples-local @@ -187,28 +211,28 @@ org-e:  # show markup pod source selections  markup: -	ls -1 --color=always $${SpinePOD} -	ls -1 -d --color=always $${SpinePOD}/*/ +	ls -1 --color=always $(SpinePOD) +	ls -1 -d --color=always $(SpinePOD)/*/  # show markup pod source tree  markup-pod-tree: -	exa -alT --git -I'.git|.dub|*_' --color=always -L5 $${SpinePOD} | less -R +	exa -alT --git -I'.git|.dub|*_' --color=always -L5 $(SpinePOD) | less -R  # show markup pod source tree  tree-src-search-cgi: -	exa -alT --git -I'*_' --color=always -L5 $${SpineSearchCGI}/src $${SpineSearchCGI}/views | less -R +	exa -alT --git -I'*_' --color=always -L5 $(SpineSearchCGI)/src $(SpineSearchCGI)/views | less -R  # show markup files  markup-files: -	cd $${SpinePOD}; \ +	cd $(SpinePOD); \  	find . -type f -iname "*sst"; \  	cd -; \ -	echo $${SpinePOD} -# find $${SpinePOD}/. -type f -iname "*sst" +	echo $(SpinePOD) +# find $(SpinePOD)/. -type f -iname "*sst"  # preview markup files vim  markup-files-vi: -	cd $${SpinePOD}; \ +	cd $(SpinePOD); \  	fd --max-depth 5 --type file -g "*.ss?" | sort \  	| fzf \  	  --preview='bat --color "always" {}' \ @@ -218,7 +242,7 @@ markup-files-vi:  # preview markup files emacs  markup-files-e: -	cd $${SpinePOD}; \ +	cd $(SpinePOD); \  	fd --max-depth 5 --type file -g "*.ss?" | sort \  	| fzf \  	  --preview='bat --color "always" {}' \ @@ -238,28 +262,28 @@ markup-samples: markup-pod-samples markup-file-samples  # markup samples pod manifests  markup-pod-samples: -	echo "$${SpinePOD}"; \ -	find $${SpinePOD} -name pod.manifest | sort +	echo $(SpinePOD); \ +	find $(SpinePOD) -name pod.manifest | sort -#find $${SpinePOD} -name pod.manifest | sed -E 's:.+?(([/][^/]+){2})$:\1:' +#find $(SpinePOD) -name pod.manifest | sed -E 's:.+?(([/][^/]+){2})$:\1:'  # markup samples sst files  markup-file-samples: -	echo "$${SpinePOD}"; \ -	find $${SpinePOD} -name *.ss[tm] | sort +	echo $(SpinePOD); \ +	find $(SpinePOD) -name *.ss[tm] | sort  # archive spine output (www)  spineWWWarchive:  	cd /srv/www ; \ -	rm spine_output.$${Date}.tar.bz2 ; \ -	sudo tar --exclude='./spine/latex' --exclude='./spine/pod' --exclude='./spine/*_' -cjf spine_output.$${Date}.tar.bz2 ./spine ; \ +	rm spine_output.$(Date).tar.bz2 ; \ +	sudo tar --exclude='./spine/latex' --exclude='./spine/pod' --exclude='./spine/*_' -cjf spine_output.$(Date).tar.bz2 ./spine ; \  	cd -  # rsync archived spine output to Linode  spineWWWrsyncLinode: -	rsync -v /srv/www/spine_output.$${Date}.tar.bz2 linode:./stage/. ; \ +	rsync -v /srv/www/spine_output.$(Date).tar.bz2 linode:./stage/. ; \  	rsync -v /var/www/sqlite/spine.search.db linode:./stage/. ; \ -	echo "tar -xf ../spine_output.$${Date}.tar.bz2" +	echo "tar -xf ../spine_output.$(Date).tar.bz2"  # get project external dependencies  depends_get: @@ -515,13 +539,6 @@ clean_tangle_build: clean tangle build  tangle_build: tangle build -build: $(PRG_SRCDIR)/$(PRG_SRC) -	$(DC) $(DC_FLAGS) \ -	$(DC_FLAG_BINOF)$(PRG_BINDIR)/$(PRG_BIN) \ -	$(PRG_SRCDIR)/$(PRG_SRC) - -rebuild: $(PRG_SRCDIR)/$(PRG_SRC) $(PRG_BINDIR)/$(PRG_BIN).o clean build -  makefile_new:  	make -k tangle_maker @@ -777,6 +794,6 @@ version_tag:  	echo "DRV=; git tag -f doc-reform-markup-samples_v$$\{DRV} -m\"doc-reform markup-samples spine-$$\{DRV}\" HEAD"; \  	echo "git tag -f doc-reform-markup-samples_v -m\"doc-reform markup-samples spine-\" HEAD"; -.PHONY : all build rebuild release \ +.PHONY : all build release \  	distclean init \  	tangle gitsnapshot diff --git a/org/config_env.org b/org/config_env.org new file mode 100644 index 0000000..b9f7264 --- /dev/null +++ b/org/config_env.org @@ -0,0 +1,108 @@ +-*- mode: org -*- +#+TITLE:       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 - 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 +** envrc :envrc: + +#+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 + +- https://github.com/nix-community/nix-direnv +  - source_url "https://raw.githubusercontent.com/nix-community/nix-direnv/${NixDirEnvVersion}/direnvrc" "sha256-0000000000000000000000000000000000000000000=" + +#+HEADER: :tangle ../.envrc-nix +#+BEGIN_SRC sh +NIX_ENFORCE_PURITY=1 +NixDirEnvVersion="<<direnv-version>>" +NixDirEnvSHA="<<direnv-sha>>" +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 makefile +watch_file .envrc-local +watch_file .envrc-nix +PATH_add result/bin +nix flake update +nix flake check +nix flake show +use flake . +#use flake .#default +#+END_SRC + +#+NAME: direnv-version +#+BEGIN_SRC sh +2.3.0 +#+END_SRC + +#+NAME: direnv-sha +#+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-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 SpineBIN=result/bin +export SpinePROJ=~/grotto/repo/git.repo/projects/doc-reform/code/software/spine +export SpineDOC=. +export SpinePOD=${SpineDOC}/markup/pod +export SpineOUT=/srv/www/spine +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 + +#+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 diff --git a/org/config_git.org b/org/config_git.org index dfc7589..b204063 100644 --- a/org/config_git.org +++ b/org/config_git.org @@ -15,7 +15,7 @@  #+PROPERTY:    header-args+ :mkdirp yes  #+OPTIONS:     H:3 num:nil toc:t \n:t ::t |:t ^:nil -:t f:t *:t -* spine markup samples +* git - spine markup samples  ** .gitignore :gitignore:  #+HEADER: :tangle "../.gitignore" @@ -32,6 +32,7 @@  !*.nix  !flake.lock  !.envrc +!.envrc-nix  !.env  !.env/**  !README diff --git a/org/config_make.org b/org/config_make.org index 7f952c3..1cd31cd 100644 --- a/org/config_make.org +++ b/org/config_make.org @@ -13,12 +13,17 @@  #+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_env.org][config_env.org]] + +* make makefile  #+HEADER: :tangle ../makefile  #+HEADER: :noweb yes  #+BEGIN_SRC makefile +include .envrc-local  PROG_VER_GIT :=$(shell echo `git describe --long --tags | sed -e "s/^[ a-z_-]\+\([0-9.]\+\)/\1/;s/\([^-]*-g\)/r\1/;s/-/./g"`)  #PROG_VER_DECLARED :=$(shell echo `cat ./views/version.txt | grep --color=never "enum" | sed 's/.\+(\([0-9]\+\),[ \t]\+\([0-9]\+\),[ \t]\+\([0-9]\+\)[ \t]*).\+/\1.\2.\3/g'`)  DUB=dub @@ -49,13 +54,15 @@ $(SiSU_MARKUP_SAMPLES_FIND_PODS) | xargs  # find data/sisudir/media/text -name *.ss[tm] | sort | xargs  #  Date                    := `date "+%Y%m%d"` -SpineBIN                := "$${SpineBIN}" # './result/bin' -SpineOUT                := "$${SpineOUT}" # '/srv/www/spine' -SpinePOD                := "$${SpinePOD}" # '~/grotto/repo/git.repo/projects/doc-reform/data/markup/spine-samples/markup/pod' -SpineSearchActionLocal  := 'http://localhost/spine_search' -SpineSearchActionRemote := 'https://sisudoc.org/spine_search' -SpineCGIform            := 'spine_search' -SpineSQLdb              := 'spine.search.db' +#SpineBIN                := $(SpineBIN)                # './result/bin' +#SpineOUT                := $(SpineOUT)                # '/srv/www/spine' +#SpinePOD                := $(SpinePOD)                # 'markup/pod' +#SpineSearchActionLocal  := $(SpineSearchActionLocal)  # 'http://localhost/spine_search' +#SpineSearchActionRemote := $(SpineSearchActionRemote) # 'https://sisudoc.org/spine_search' +#SpineCGIform            := $(SpineCGIform)            # 'spine_search' +#SpineSQLdb              := $(SpineSQLdb)              # 'spine.search.db' +#SpineCGIbin             := $(SpineCGIbin)             # '/var/www/cgi/cgi-bin' +#SpineDBpath             := "$(SpineDBpath)"           # '/var/www/sqlite'  hwd                     := `pwd`  gwd                     := `pwd` + "/src/ext_depends"  deps                    := "`ls -gx './src/ext_depends'`" @@ -81,8 +88,7 @@ nix-devshell:  	nix flake update && nix flake check --show-trace && nix flake show && nix develop ".#devShell"  # nix build -build: -	nix-build +build: nix-build-default  nix-build-default:  	nix build ".#default" --print-build-logs @@ -108,58 +114,80 @@ org-tangle:  	org-tangle *.org; \  	cd - +# output local +out-local: +	$(SpineBIN)/spine -v \ +	--latex --latex-init \ +	--epub --html \ +	--html-link-search --html-link-pdf --html-link-curate --html-link-markup \ +	--cgi-sqlite-search-filename=$(SpineCGIform) --cgi-url-action=$(SpineSearchActionLocal) \ +	--sqlite-update --sqlite-db-filename=$(SpineSQLdb) \ +	--curate \ +	--output=$(SpineOUT) $(SpinePOD)/* + +# output remote +out-remote: +	$(SpineBIN)/spine -v \ +	--latex --latex-init \ +	--epub --html \ +	--html-link-search --html-link-pdf --html-link-curate --html-link-markup \ +	--cgi-sqlite-search-filename=$(SpineCGIform) --cgi-url-action=$(SpineSearchActionRemote) \ +	--sqlite-update --sqlite-db-filename="$(SpineSQLdb)" \ +	--curate \ +	--output=$(SpineOUT) $(SpinePOD)/* +  # epub output  out-epub: -	$${SpineBIN}/spine -v \ -	--epub --output=$${SpineOUT} $${SpinePOD}/* +	$(SpineBIN)/spine -v \ +	--epub --output=$(SpineOUT) $(SpinePOD)/*  # html output with local search links  out-html: -	$${SpineBIN}/spine -v --generated-by \ +	$(SpineBIN)/spine -v --generated-by \  	--curate \ -	--html --html-link-search --html-link-curate --cgi-url-action="$${SpineSearchActionLocal}" \ -	--output=$${SpineOUT} $${SpinePOD}/* +	--html --html-link-search --html-link-curate --cgi-url-action=$(SpineSearchActionLocal) \ +	--output=$(SpineOUT) $(SpinePOD)/*  # latex output  out-latex: -	$${SpineBIN}/spine -v \ +	$(SpineBIN)/spine -v \  	--latex \ -	--output=$${SpineOUT} $${SpinePOD}/* +	--output=$(SpineOUT) $(SpinePOD)/*  # odf output  out-odf: -	$${SpineBIN}/spine -v \ +	$(SpineBIN)/spine -v \  	--odf \ -	--output=$${SpineOUT} $${SpinePOD}/* +	--output=$(SpineOUT) $(SpinePOD)/*  # sqlite output  out-sqlite: -	$${SpineBIN}/spine -v \ -	--sqlite-update --sqlite-db-filename="$${SpineSQLdb}" \ -	--output=$${SpineOUT} $${SpinePOD}/* +	$(SpineBIN)/spine -v \ +	--sqlite-update --sqlite-db-filename=$(SpineSQLdb) \ +	--output=$(SpineOUT) $(SpinePOD)/*  # generate markup sample output with local search links  output-samples-local: -	$${SpineBIN}/spine -v \ +	$(SpineBIN)/spine -v \  	--latex --latex-init \  	--epub \  	--html --html-link-search --html-link-pdf --html-link-curate --html-link-markup \ -	--cgi-sqlite-search-filename="$${SpineCGIform}" --cgi-url-action="$${SpineSearchActionLocal}" \ +	--cgi-sqlite-search-filename=$(SpineCGIform) --cgi-url-action=$(SpineSearchActionLocal) \  	--curate \ -	--sqlite-update --sqlite-db-filename="$${SpineSQLdb}" \ -	--output=$${SpineOUT} $${SpinePOD}/* +	--sqlite-update --sqlite-db-filename="$(SpineSQLdb)" \ +	--output=$(SpineOUT) $(SpinePOD)/*  # generate markup sample output with remote search links  output-samples-remote: -	$${SpineBIN}/spine -v \ +	$(SpineBIN)/spine -v \  	--generated-by \  	--latex --latex-init \  	--epub \  	--html --html-link-search --html-link-pdf --html-link-curate \ -	--cgi-sqlite-search-filename="$${SpineCGIform}" --cgi-url-action="$${SpineSearchActionRemote}" \ +	--cgi-sqlite-search-filename=$(SpineCGIform) --cgi-url-action=$(SpineSearchActionRemote) \  	--curate \ -	--sqlite-update --sqlite-db-filename="$${SpineSQLdb}" \ -	--output=$${SpineOUT} $${SpinePOD}/* +	--sqlite-update --sqlite-db-filename=$(SpineSQLdb) \ +	--output=$(SpineOUT) $(SpinePOD)/*  # generate markup sample output with local search links  output-samples: output-samples-local @@ -208,28 +236,28 @@ org-e:  # show markup pod source selections  markup: -	ls -1 --color=always $${SpinePOD} -	ls -1 -d --color=always $${SpinePOD}/*/ +	ls -1 --color=always $(SpinePOD) +	ls -1 -d --color=always $(SpinePOD)/*/  # show markup pod source tree  markup-pod-tree: -	exa -alT --git -I'.git|.dub|*_' --color=always -L5 $${SpinePOD} | less -R +	exa -alT --git -I'.git|.dub|*_' --color=always -L5 $(SpinePOD) | less -R  # show markup pod source tree  tree-src-search-cgi: -	exa -alT --git -I'*_' --color=always -L5 $${SpineSearchCGI}/src $${SpineSearchCGI}/views | less -R +	exa -alT --git -I'*_' --color=always -L5 $(SpineSearchCGI)/src $(SpineSearchCGI)/views | less -R  # show markup files  markup-files: -	cd $${SpinePOD}; \ +	cd $(SpinePOD); \  	find . -type f -iname "*sst"; \  	cd -; \ -	echo $${SpinePOD} -# find $${SpinePOD}/. -type f -iname "*sst" +	echo $(SpinePOD) +# find $(SpinePOD)/. -type f -iname "*sst"  # preview markup files vim  markup-files-vi: -	cd $${SpinePOD}; \ +	cd $(SpinePOD); \  	fd --max-depth 5 --type file -g "*.ss?" | sort \  	| fzf \  	  --preview='bat --color "always" {}' \ @@ -239,7 +267,7 @@ markup-files-vi:  # preview markup files emacs  markup-files-e: -	cd $${SpinePOD}; \ +	cd $(SpinePOD); \  	fd --max-depth 5 --type file -g "*.ss?" | sort \  	| fzf \  	  --preview='bat --color "always" {}' \ @@ -259,28 +287,28 @@ markup-samples: markup-pod-samples markup-file-samples  # markup samples pod manifests  markup-pod-samples: -	echo "$${SpinePOD}"; \ -	find $${SpinePOD} -name pod.manifest | sort +	echo $(SpinePOD); \ +	find $(SpinePOD) -name pod.manifest | sort -#find $${SpinePOD} -name pod.manifest | sed -E 's:.+?(([/][^/]+){2})$:\1:' +#find $(SpinePOD) -name pod.manifest | sed -E 's:.+?(([/][^/]+){2})$:\1:'  # markup samples sst files  markup-file-samples: -	echo "$${SpinePOD}"; \ -	find $${SpinePOD} -name *.ss[tm] | sort +	echo $(SpinePOD); \ +	find $(SpinePOD) -name *.ss[tm] | sort  # archive spine output (www)  spineWWWarchive:  	cd /srv/www ; \ -	rm spine_output.$${Date}.tar.bz2 ; \ -	sudo tar --exclude='./spine/latex' --exclude='./spine/pod' --exclude='./spine/*_' -cjf spine_output.$${Date}.tar.bz2 ./spine ; \ +	rm spine_output.$(Date).tar.bz2 ; \ +	sudo tar --exclude='./spine/latex' --exclude='./spine/pod' --exclude='./spine/*_' -cjf spine_output.$(Date).tar.bz2 ./spine ; \  	cd -  # rsync archived spine output to Linode  spineWWWrsyncLinode: -	rsync -v /srv/www/spine_output.$${Date}.tar.bz2 linode:./stage/. ; \ +	rsync -v /srv/www/spine_output.$(Date).tar.bz2 linode:./stage/. ; \  	rsync -v /var/www/sqlite/spine.search.db linode:./stage/. ; \ -	echo "tar -xf ../spine_output.$${Date}.tar.bz2" +	echo "tar -xf ../spine_output.$(Date).tar.bz2"  # get project external dependencies  depends_get: @@ -536,13 +564,6 @@ clean_tangle_build: clean tangle build  tangle_build: tangle build -build: $(PRG_SRCDIR)/$(PRG_SRC) -	$(DC) $(DC_FLAGS) \ -	$(DC_FLAG_BINOF)$(PRG_BINDIR)/$(PRG_BIN) \ -	$(PRG_SRCDIR)/$(PRG_SRC) - -rebuild: $(PRG_SRCDIR)/$(PRG_SRC) $(PRG_BINDIR)/$(PRG_BIN).o clean build -  makefile_new:  	make -k tangle_maker @@ -798,7 +819,7 @@ version_tag:  	echo "DRV=<<spine_version_set>>; git tag -f doc-reform-markup-samples_v$$\{DRV} -m\"doc-reform markup-samples spine-$$\{DRV}\" HEAD"; \  	echo "git tag -f doc-reform-markup-samples_v<<spine_version_set>> -m\"doc-reform markup-samples spine-<<spine_version_set>>\" HEAD"; -.PHONY : all build rebuild release \ +.PHONY : all build release \  	distclean init \  	tangle gitsnapshot  #+END_SRC diff --git a/org/config_nix.org b/org/config_nix.org index 7153926..7cfd1a5 100644 --- a/org/config_nix.org +++ b/org/config_nix.org @@ -15,58 +15,11 @@  #+PROPERTY:    header-args+ :mkdirp yes  #+OPTIONS:     H:3 num:nil toc:t \n:t ::t |:t ^:nil -:t f:t *:t -* nix :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 -NIX_ENFORCE_PURITY=1 -# - https://github.com/nix-community/nix-direnv -NixDirEnvVersion="2.2.1" -NixDirEnvSHA="sha256-zelF0vLbEl5uaqrfIzbgNzJWGmLzCmYAkInj/LNxvKs=" -#NixDirEnvSHAget="sha256-0000000000000000000000000000000000000000000=" -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 makefile -if [ -f .envrc-local ]; then -  source_env_if_exists .envrc-local || source .envrc-local -fi -PATH_add result/bin -use flake . -#use flake .#default -#+END_SRC - -*** .envrc-local CHECK MODIFY +- [[./doc-reform.org][doc-reform.org]]  [[../org/][org/]] +- [[./config_env.org][config_env.org]] -- 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=/srv/nix/nixpkgs -#export NIX_PATH=nixpkgs=/srv/nix/nixpkgs -export DFLAGS="-O2 -inline -boundscheck=on -color=on" -#export SpineBIN=result/bin -export SpinePROJ=~/grotto/repo/git.repo/projects/doc-reform/code/software/spine -export SpineDOC=. -export SpineOUT=/srv/www/spine -export SpineDBpath=/var/www/sqlite -#export SpineDBpath=/srv/www/spine/sqlite -export SpineCGIbin=/var/www/cgi/cgi-bin -export SpineSearchActionLocal='http://localhost/spine_search' -export SpineSearchActionRemote='https://sisudoc.org/spine_search' -export SpineCGIform='spine_search' -export SpineSQLdb='spine.search.db' -#+END_SRC +* nix :nix:  ** flake.nix :flake:  #+HEADER: :tangle ../flake.nix @@ -77,9 +30,11 @@ export SpineSQLdb='spine.search.db'    inputs = {      nixpkgs.url = "github:NixOS/nixpkgs/nixpkgs-unstable"; # "github:nixos/nixpkgs";      flake-utils.url = "github:numtide/flake-utils"; -    spine.url = "<<spine_git_file_path_url>>"; -    spine.inputs.nixpkgs.follows = "nixpkgs"; -    spine.flake = true; +    spine = { +      url = "git+file:///home/ralph/grotto/repo/git.repo/projects/doc-reform/code/software/spine"; +      inputs.nixpkgs.follows = "nixpkgs"; +      flake = true; +    };    };    outputs = {      self, @@ -114,28 +69,7 @@ export SpineSQLdb='spine.search.db'        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/*" +        ## set local values in .envrc-local (or here if you must)        '';      in        with pkgs; { @@ -148,7 +82,7 @@ export SpineSQLdb='spine.search.db'            packages = [              sqlite              dub -            dmd +            #dmd              ldc              gnumake            ]; @@ -160,7 +94,7 @@ export SpineSQLdb='spine.search.db'            inherit devEnv;            packages = [              dub -            dmd +            #dmd              ldc              gnumake              sqlite @@ -187,7 +121,7 @@ export SpineSQLdb='spine.search.db'            inherit devEnv;            packages = [              dub -            dmd +            #dmd              ldc              gnumake              sqlite @@ -200,7 +134,7 @@ export SpineSQLdb='spine.search.db'            inherit devEnv;            packages = [              dub -            dmd +            #dmd              ldc              gnumake              sqlite @@ -217,7 +151,7 @@ export SpineSQLdb='spine.search.db'            inherit devEnv;            packages = [              dub -            dmd +            #dmd              ldc              gnumake              sqlite @@ -230,7 +164,7 @@ export SpineSQLdb='spine.search.db'            inherit devEnv;            packages = [              dub -            dmd +            #dmd              ldc              gnumake              sqlite @@ -316,7 +250,13 @@ devShells = forAllSystems (system:    let pkgs = nixpkgsFor.${system};    in {      default = pkgs.mkShell { -      buildInputs = with pkgs; [ git dub dmd ldc sqlite ]; +      buildInputs = with pkgs; [ +        git +        dub +        #dmd +        ldc +        sqlite +      ];      };  });  #+END_SRC @@ -453,9 +393,6 @@ with pkgs;        # perl534Packages.Po4a      ];      shellHook = '' -      nix flake update -      nix flake check -      nix flake show        echo '          shell.nix echo ❯❯ @@ -51,9 +51,6 @@ with pkgs;        # perl534Packages.Po4a      ];      shellHook = '' -      nix flake update -      nix flake check -      nix flake show        echo '          shell.nix echo ❯❯ | 
