-*- 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