aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorRalph Amissah <ralph.amissah@gmail.com>2023-04-29 20:19:13 -0400
committerRalph Amissah <ralph.amissah@gmail.com>2023-04-29 23:32:07 -0400
commit701642b75188b76aca964c70b0b99ea980e10b97 (patch)
tree86be909af9a101cae16745c9202628d6e8e80e6f
parentnix .envrc read local settings if any (diff)
nix dev + update direnv 2.2.1 => 2.3.0
-rw-r--r--.envrc17
-rw-r--r--.envrc-local_12
-rw-r--r--.envrc-nix17
-rw-r--r--.gitignore1
-rw-r--r--flake.lock14
-rw-r--r--flake.nix43
-rw-r--r--makefile127
-rw-r--r--org/config_env.org108
-rw-r--r--org/config_git.org3
-rw-r--r--org/config_make.org131
-rw-r--r--org/config_nix.org107
-rwxr-xr-xshell.nix3
12 files changed, 325 insertions, 258 deletions
diff --git a/.envrc b/.envrc
index 952ad02..6ad5fe2 100644
--- a/.envrc
+++ b/.envrc
@@ -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
diff --git a/.gitignore b/.gitignore
index 27c05f0..fccf60e 100644
--- a/.gitignore
+++ b/.gitignore
@@ -10,6 +10,7 @@
!*.nix
!flake.lock
!.envrc
+!.envrc-nix
!.env
!.env/**
!README
diff --git a/flake.lock b/flake.lock
index 88efd63..066554b 100644
--- a/flake.lock
+++ b/flake.lock
@@ -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"
},
diff --git a/flake.nix b/flake.nix
index 79ce2a1..c98f513 100644
--- a/flake.nix
+++ b/flake.nix
@@ -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
diff --git a/makefile b/makefile
index 921fdef..6f943f0 100644
--- a/makefile
+++ b/makefile
@@ -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 ❯❯
diff --git a/shell.nix b/shell.nix
index 72f6984..c3203df 100755
--- a/shell.nix
+++ b/shell.nix
@@ -51,9 +51,6 @@ with pkgs;
# perl534Packages.Po4a
];
shellHook = ''
- nix flake update
- nix flake check
- nix flake show
echo '
shell.nix echo ❯❯