diff options
Diffstat (limited to 'org')
| -rw-r--r-- | org/config_git.org | 8 | ||||
| -rw-r--r-- | org/config_nix.org | 565 | 
2 files changed, 275 insertions, 298 deletions
| diff --git a/org/config_git.org b/org/config_git.org index 88eae7f5..68ff2cea 100644 --- a/org/config_git.org +++ b/org/config_git.org @@ -25,6 +25,8 @@  # git clean -ix  # find . -name "*_" | xargs rm -rf  ,* +!.gitignore +!.gitattributes  !nix/**  !*.nix  !flake.lock @@ -104,8 +106,8 @@  !.gitignore  !.gitattributes  !.envrc -!.env -!.env/** +!.envrc-local +!.envrc-nix  #+END_SRC  ** .gitattributes :gitattributes: @@ -115,5 +117,5 @@  /org export-ignore  .gitattributes export-ignore  tangle export-ignore -flake.lock export-ignore +#flake.lock export-ignore  #+END_SRC diff --git a/org/config_nix.org b/org/config_nix.org index 25a2c8aa..9353975b 100644 --- a/org/config_nix.org +++ b/org/config_nix.org @@ -33,22 +33,45 @@  #+HEADER: :tangle ../.envrc  #+BEGIN_SRC sh -use flake . -#use flake .#default +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 -NixDirEnvVersion="2.2.1" -if ! has nix_direnv_version || ! nix_direnv_version ${NixDirEnvVersion}; then  # - https://github.com/nix-community/nix-direnv -# source_url "https://raw.githubusercontent.com/nix-community/nix-direnv/${NixDirEnvVersion}/direnvrc" "sha256-0000000000000000000000000000000000000000000=" -  source_url "https://raw.githubusercontent.com/nix-community/nix-direnv/${NixDirEnvVersion}/direnvrc" "sha256-zelF0vLbEl5uaqrfIzbgNzJWGmLzCmYAkInj/LNxvKs=" +#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 -if [ -f .envrc-local ]; then -  source_env_if_exists .envrc-local || source .envrc-local -fi +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 update && nix flake check --show-trace && nix flake show +nix flake show +#use flake .  #+END_SRC  *** .envrc-local CHECK MODIFY @@ -73,6 +96,40 @@ 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 @@ -81,265 +138,185 @@ export RUBYLIB+=`pwd`/lib  #+HEADER: :noweb yes  #+BEGIN_SRC nix  { -  description                  = "sisu parser & document generator"; -  inputs.nixpkgs.url           = "github:NixOS/nixpkgs/nixpkgs-unstable"; # "github:nixos/nixpkgs"; "github:NixOS/nixpkgs/nixpkgs-unstable"; "nixpkgs/nixos-unstable"; "nixpkgs/nixos-21.11"; -  inputs.flake-utils.url       = "github:numtide/flake-utils"; -  outputs = { self, nixpkgs, flake-utils } @inputs: -    let -      pname                    = "sisu"; -      version                  = "<<sisu_version_set>>"; -      shell                    = ./shell.nix; # ./default.nix; -      devEnv                   = ./.envrc; # ./shell.nix; # ./default.nix; -      supportedSystems         = [ "x86_64-linux" ]; # [ "x86_64-linux" "x86_64-darwin" "aarch64-linux" "aarch64-darwin" ]; -      forAllSystems            = nixpkgs.lib.genAttrs supportedSystems; -      nixpkgsFor               = forAllSystems (system: import nixpkgs { inherit system;  }); # nixpkgs instantiated for supported system types. -      checkPhase = '' -        runHook preCheck -        runHook postCheck -      ''; -      preInstall = '' -        mkdir -p $out/lib -        mkdir -p $out/bin -      ''; -      installPhase = '' -        runHook preInstall -        mkdir -p $out/lib -        mkdir -p $out/setup -        mkdir -p $out/data -        mkdir -p $out/bin -        #cp ./lib/sisu.rb $out/lib/sisu.rb -        cp -R ./lib/* $out/lib/. -        cp -R ./data/* $out/data/. -        cp -R ./setup/* $out/setup/. -        ln -s $out/setup/sisu_version.rb $out/version -        install -m755 ./bin/sisu $out/bin/sisu -        runHook postInstall -      ''; -      postInstall = '' -        # echo `ls -la $out/bin/sisu` -        ## $out/bin/sisu -v -      ''; -    in { -      packages = forAllSystems (system: -        let pkgs               = nixpkgsFor.${system}; -        in with pkgs; { -          default = stdenv.mkDerivation { -            inherit pname; -            inherit version; -            meta.mainProgram   = "sisu"; -            executable         = true; -            src                = self; -            inherit shell; -            inherit devEnv; -            buildInputs        = [ -              ruby_3_2 -              rubyPackages_3_2.rake -              rubyPackages_3_2.sqlite3 -              rubyPackages_3_2.thor -              sqlite -              graphicsmagick -              unzip -              xz -              zip -              openssl -            ]; -            buildPhase = '' -            ''; -            inherit checkPhase; -            inherit installPhase; -            inherit postInstall; -          }; -          #vendorSha256 = "sha256-0Q00000000000000000000000000000000000000000="; -      }); -      apps = forAllSystems (system: { -        default = { -          type                 = "app"; -          program              = "${self.packages.${system}.default}/bin/sisu"; +  description = "sisu parser & document generator"; +  inputs.nixpkgs.url = "github:NixOS/nixpkgs/nixpkgs-unstable"; # "github:nixos/nixpkgs"; "github:NixOS/nixpkgs/nixpkgs-unstable"; "nixpkgs/nixos-unstable"; "nixpkgs/nixos-21.11"; +  inputs.flake-utils.url = "github:numtide/flake-utils"; +  outputs = { +    self, +    nixpkgs, +    flake-utils, +  } @ inputs: let +    pname = "sisu"; +    version = "<<sisu_version_set>>"; +    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" ]; +    forAllSystems = nixpkgs.lib.genAttrs supportedSystems; +    nixpkgsFor = forAllSystems (system: import nixpkgs {inherit system;}); # nixpkgs instantiated for supported system types +    checkPhase = '' +      runHook preCheck +      runHook postCheck +    ''; +    preInstall = ""; +    installPhase = '' +      runHook preInstall +      mkdir -p $out/lib +      mkdir -p $out/setup +      mkdir -p $out/data +      mkdir -p $out/bin +      cp -R ./lib/* $out/lib/. +      cp -R ./data/* $out/data/. +      cp -R ./setup/* $out/setup/. +      ln -s $out/setup/sisu_version.rb $out/version +      install -m755 ./bin/sisu $out/bin/sisu +      runHook postInstall +    ''; +    postInstall = ""; +  in { +    packages = forAllSystems (system: let +      pkgs = nixpkgsFor.${system}; +    in +      with pkgs; { +        default = stdenv.mkDerivation { +          inherit pname; +          inherit version; +          meta.mainProgram = "sisu"; +          executable = true; +          src = self; +          inherit shell; +          inherit devEnv; +          buildPhase = ""; +          inherit checkPhase; +          inherit installPhase; +          inherit postInstall;          }; +        #vendorSha256 = "sha256-0Q00000000000000000000000000000000000000000=";        }); -      devShells = forAllSystems (system: -        let -          pkgs = nixpkgsFor.${system}; -          shellHook = '' -            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/*" -          ''; -        in with pkgs; { -          devShell = mkShell { -            name               = "sisu dev base shell"; -            inherit shell; -            inherit devEnv; -            packages = [ -              sqlite -              nixFlakes -              validatePkgConfig -              nix-output-monitor -              jq -              git -            ]; -            inherit shellHook; -          }; -          devShell-epub = mkShell { -            name               = "sisu dev shell for epub output"; -            inherit shell; -            inherit devEnv; -            packages = [ -              ruby_3_2 -              rubyPackages_3_2.rake -              rubyPackages_3_2.sqlite3 -              rubyPackages_3_2.thor -              sqlite -              graphicsmagick -              zip -              unzip -              xz -              libxml2 -              html-tidy -              xmlstarlet -              epubcheck -              ebook_tools -              libxml2 -              html-tidy -              xmlstarlet -              epubcheck -              ebook_tools -              epr -              sigil -              calibre #(suite includes: ebook-viewer) -              foliate -              #devenv -              nixFlakes -              validatePkgConfig -              nix-output-monitor -              jq -              git -            ]; -            inherit shellHook; -          }; -          devShell-html = mkShell { -            name               = "sisu dev shell for latex & pdf output"; -            inherit shell; -            inherit devEnv; -            packages = [ -              ruby_3_2 -              rubyPackages_3_2.rake -              rubyPackages_3_2.sqlite3 -              rubyPackages_3_2.thor -              sqlite -              graphicsmagick -              zip -              unzip -              xz -              #devenv -              nixFlakes -              validatePkgConfig -              nix-output-monitor -              jq -              git -            ]; -            inherit shellHook; -          }; -          devShell-latex-pdf = mkShell { -            name               = "sisu dev shell for latex & pdf output"; -            inherit shell; -            inherit devEnv; -            packages = [ -              ruby_3_2 -              rubyPackages_3_2.rake -              rubyPackages_3_2.sqlite3 -              rubyPackages_3_2.thor -              sqlite -              graphicsmagick -              zip -              unzip -              xz -              source-sans-pro -              source-serif-pro -              source-code-pro -              texlive.combined.scheme-full -              #devenv -              nixFlakes -              validatePkgConfig -              nix-output-monitor -              jq -              git -            ]; -            inherit shellHook; -          }; -          devShell-sqlite = mkShell { -            name               = "sisu dev shell for latex & pdf output"; -            inherit shell; -            inherit devEnv; -            packages = [ -              ruby_3_2 -              rubyPackages_3_2.rake -              rubyPackages_3_2.sqlite3 -              rubyPackages_3_2.thor -              sqlite -              graphicsmagick -              zip -              unzip -              xz -              #devenv -              nixFlakes -              validatePkgConfig -              nix-output-monitor -              jq -              git -            ]; -            inherit shellHook; -          }; -          devShell-i18n = mkShell { -            name               = "sisu dev shell internationalization, po4a"; -            inherit shell; -            inherit devEnv; -            packages = [ -              ruby_3_2 -              rubyPackages_3_2.rake -              rubyPackages_3_2.sqlite3 -              rubyPackages_3_2.thor -              sqlite -              graphicsmagick -              perl538Packages.Po4a -              #devenv -              nixFlakes -              validatePkgConfig -              nix-output-monitor -              jq -              git -            ]; -            inherit shellHook; -          }; -          default = import ./shell.nix { inherit pkgs; }; +    apps = forAllSystems (system: { +      default = { +        type = "app"; +        program = "${self.packages.${system}.default}/bin/sisu"; +      }; +    }); +    devShells = forAllSystems (system: let +      pkgs = nixpkgsFor.${system}; +      shellHook = '' +        #${pkgs.nix}/bin/nix build ".#" --print-build-logs; +        nix build ".#" --print-build-logs; +        echo "" +        sisu -v +      ''; +    in +      with pkgs; { +        default = mkShell { +          name = "sisu dev base shell"; +          inherit shell; +          inherit devEnv; +          packages = [ +            <<ruby_current>> +            sqlite +            jq +            git +          ]; +          inherit shellHook; +        }; +        dsh-epub = mkShell { +          name = "sisu dev shell for epub output"; +          inherit shell; +          inherit devEnv; +          packages = [ +            <<ruby_current>> +            sqlite +            graphicsmagick +            zip +            unzip +            xz +            libxml2 +            html-tidy +            xmlstarlet +            epubcheck +            ebook_tools +            libxml2 +            html-tidy +            xmlstarlet +            epubcheck +            ebook_tools +            epr +            sigil +            calibre #(suite includes: ebook-viewer) +            foliate +            jq +            #git +          ]; +          inherit shellHook; +        }; +        dsh-html = mkShell { +          name = "sisu dev shell for html output"; +          inherit shell; +          inherit devEnv; +          packages = [ +            <<ruby_current>> +            sqlite +            graphicsmagick +            zip +            unzip +            xz +            jq +            #git +          ]; +          inherit shellHook; +        }; +        dsh-latex-pdf = mkShell { +          name = "sisu dev shell for latex & pdf output"; +          inherit shell; +          inherit devEnv; +          packages = [ +            <<ruby_current>> +            sqlite +            graphicsmagick +            zip +            unzip +            xz +            source-sans-pro +            source-serif-pro +            source-code-pro +            texlive.combined.scheme-full +            jq +            #git +          ]; +          inherit shellHook; +        }; +        dsh-sqlite = mkShell { +          name = "sisu dev shell for latex & pdf output"; +          inherit shell; +          inherit devEnv; +          packages = [ +            <<ruby_current>> +            sqlite +            graphicsmagick +            zip +            unzip +            xz +            jq +            #git +          ]; +          inherit shellHook; +        }; +        dsh-i18n = mkShell { +          name = "sisu dev shell internationalization, po4a"; +          inherit shell; +          inherit devEnv; +          packages = [ +            <<ruby_current>> +            sqlite +            graphicsmagick +            perl538Packages.Po4a +            jq +            #git +          ]; +          inherit shellHook; +        }; +        #default = import ./shell.nix {inherit pkgs;};        });    };  } @@ -348,36 +325,27 @@ export RUBYLIB+=`pwd`/lib  ** shell.nix TODO  #+HEADER: :tangle ../shell.nix -#+HEADER: :shebang #!/usr/bin/env -S nix-shell --pure +#+HEADER: :shebang "#!/usr/bin/env -S nix-shell --impure\n#!nix-shell -i bash"  #+HEADER: :tangle-mode (identity #o755)  #+BEGIN_SRC nix -{ pkgs ? import <nixpkgs> {} }: +{pkgs ? import <nixpkgs> {}}:  with pkgs; -mkShell { -  buildInputs = [ -    <<ruby_current>> -    <<packages_project_relevant>> -    <<packages_build>> -    <<packages_extra>> -  ]; -  shellHook = '' -    #if [[ -e ".envrc" ]]; then -    #  source .envrc -    #fi -    #eval "$(starship init bash)" -  ''; -} +  mkShell { +    buildInputs = [ +      <<ruby_current>> +      <<packages_project_relevant>> +      <<packages_build>> +      <<packages_extra>> +    ]; +    shellHook = '' +    ''; +  }  #+END_SRC - -  { pkgs ? import <nixpkgs> {} }:  with pkgs;  mkShell {    buildInputs = [ -    ruby_3_2 -    rubyPackages_3_2.rake -    rubyPackages_3_2.sqlite3 -    rubyPackages_3_2.thor +    <<ruby_current>>      sqlite      graphicsmagick      unzip @@ -394,12 +362,9 @@ mkShell {      #starship    ];    shellHook = '' -    #if [[ -e ".envrc" ]]; then -    #  source .envrc -    #fi -    #eval "$(starship init bash)"    '';  } +#+END_SRC  ** packages.nix  *** default @@ -461,14 +426,24 @@ with pkgs; [  #+NAME: ruby_current  #+BEGIN_SRC nix -<<ruby_version_3_2>> +<<ruby_version_3_3>>  #+END_SRC  *** ruby next  #+NAME: ruby_next  #+BEGIN_SRC nix -<<ruby_version_3_2>> +<<ruby_version_3_3>> +#+END_SRC + +*** ruby 3.3 - ruby_version_3_3 + +#+NAME: ruby_version_3_3 +#+BEGIN_SRC nix +ruby_3_3 +rubyPackages_3_3.rake +rubyPackages_3_3.sqlite3 +rubyPackages_3_3.thor  #+END_SRC  *** ruby 3.2 - ruby_version_3_2 | 
