diff --git a/templates/rde/.devenv.flake.nix b/templates/rde/.devenv.flake.nix new file mode 100644 index 0000000..cc8d18c --- /dev/null +++ b/templates/rde/.devenv.flake.nix @@ -0,0 +1,173 @@ +{ + inputs = + let + version = "1.8.2"; +system = "aarch64-darwin"; +devenv_root = "/Users/daniel/_work_system/10_19_development/13_configs/13.05_project_template/templates/rde"; +devenv_dotfile = "/Users/daniel/_work_system/10_19_development/13_configs/13.05_project_template/templates/rde/.devenv"; +devenv_dotfile_path = ./.devenv; +devenv_tmpdir = "/tmp/nix-shell.loyuJp"; +devenv_runtime = "/tmp/nix-shell.loyuJp/devenv-e545512"; +devenv_istesting = false; +devenv_direnvrc_latest_version = 1; +container_name = null; + + in { + git-hooks.url = "github:cachix/git-hooks.nix"; + git-hooks.inputs.nixpkgs.follows = "nixpkgs"; + pre-commit-hooks.follows = "git-hooks"; + nixpkgs.url = "github:cachix/devenv-nixpkgs/rolling"; + devenv.url = "github:cachix/devenv?dir=src/modules"; + } // (if builtins.pathExists (devenv_dotfile_path + "/flake.json") + then builtins.fromJSON (builtins.readFile (devenv_dotfile_path + "/flake.json")) + else { }); + + outputs = { nixpkgs, ... }@inputs: + let + version = "1.8.2"; +system = "aarch64-darwin"; +devenv_root = "/Users/daniel/_work_system/10_19_development/13_configs/13.05_project_template/templates/rde"; +devenv_dotfile = "/Users/daniel/_work_system/10_19_development/13_configs/13.05_project_template/templates/rde/.devenv"; +devenv_dotfile_path = ./.devenv; +devenv_tmpdir = "/tmp/nix-shell.loyuJp"; +devenv_runtime = "/tmp/nix-shell.loyuJp/devenv-e545512"; +devenv_istesting = false; +devenv_direnvrc_latest_version = 1; +container_name = null; + + devenv = + if builtins.pathExists (devenv_dotfile_path + "/devenv.json") + then builtins.fromJSON (builtins.readFile (devenv_dotfile_path + "/devenv.json")) + else { }; + getOverlays = inputName: inputAttrs: + map + (overlay: + let + input = inputs.${inputName} or (throw "No such input `${inputName}` while trying to configure overlays."); + in + input.overlays.${overlay} or (throw "Input `${inputName}` has no overlay called `${overlay}`. Supported overlays: ${nixpkgs.lib.concatStringsSep ", " (builtins.attrNames input.overlays)}")) + inputAttrs.overlays or [ ]; + overlays = nixpkgs.lib.flatten (nixpkgs.lib.mapAttrsToList getOverlays (devenv.inputs or { })); + pkgs = import nixpkgs { + inherit system; + config = { + allowUnfree = devenv.nixpkgs.per-platform."${system}".allowUnfree or devenv.nixpkgs.allowUnfree or devenv.allowUnfree or false; + allowBroken = devenv.nixpkgs.per-platform."${system}".allowBroken or devenv.nixpkgs.allowBroken or devenv.allowBroken or false; + cudaSupport = devenv.nixpkgs.per-platform."${system}".cudaSupport or devenv.nixpkgs.cudaSupport or false; + cudaCapabilities = devenv.nixpkgs.per-platform."${system}".cudaCapabilities or devenv.nixpkgs.cudaCapabilities or [ ]; + permittedInsecurePackages = devenv.nixpkgs.per-platform."${system}".permittedInsecurePackages or devenv.nixpkgs.permittedInsecurePackages or devenv.permittedInsecurePackages or [ ]; + }; + inherit overlays; + }; + lib = pkgs.lib; + importModule = path: + if lib.hasPrefix "./" path + then if lib.hasSuffix ".nix" path + then ./. + (builtins.substring 1 255 path) + else ./. + (builtins.substring 1 255 path) + "/devenv.nix" + else if lib.hasPrefix "../" path + then throw "devenv: ../ is not supported for imports" + else + let + paths = lib.splitString "/" path; + name = builtins.head paths; + input = inputs.${name} or (throw "Unknown input ${name}"); + subpath = "/${lib.concatStringsSep "/" (builtins.tail paths)}"; + devenvpath = "${input}" + subpath; + devenvdefaultpath = devenvpath + "/devenv.nix"; + in + if lib.hasSuffix ".nix" devenvpath + then devenvpath + else if builtins.pathExists devenvdefaultpath + then devenvdefaultpath + else throw (devenvdefaultpath + " file does not exist for input ${name}."); + project = pkgs.lib.evalModules { + specialArgs = inputs // { inherit inputs; }; + modules = [ + ({ config, ... }: { + _module.args.pkgs = pkgs.appendOverlays (config.overlays or [ ]); + }) + (inputs.devenv.modules + /top-level.nix) + { + devenv.cliVersion = version; + devenv.root = devenv_root; + devenv.dotfile = devenv_dotfile; + } + ({ options, ... }: { + config.devenv = lib.mkMerge [ + (pkgs.lib.optionalAttrs (builtins.hasAttr "tmpdir" options.devenv) { + tmpdir = devenv_tmpdir; + }) + (pkgs.lib.optionalAttrs (builtins.hasAttr "isTesting" options.devenv) { + isTesting = devenv_istesting; + }) + (pkgs.lib.optionalAttrs (builtins.hasAttr "runtime" options.devenv) { + runtime = devenv_runtime; + }) + (pkgs.lib.optionalAttrs (builtins.hasAttr "direnvrcLatestVersion" options.devenv) { + direnvrcLatestVersion = devenv_direnvrc_latest_version; + }) + ]; + }) + (pkgs.lib.optionalAttrs (container_name != null) { + container.isBuilding = pkgs.lib.mkForce true; + containers.${container_name}.isBuilding = true; + }) + ] ++ (map importModule (devenv.imports or [ ])) ++ [ + (if builtins.pathExists ./devenv.nix then ./devenv.nix else { }) + (devenv.devenv or { }) + (if builtins.pathExists ./devenv.local.nix then ./devenv.local.nix else { }) + (if builtins.pathExists (devenv_dotfile_path + "/cli-options.nix") then import (devenv_dotfile_path + "/cli-options.nix") else { }) + ]; + }; + config = project.config; + + options = pkgs.nixosOptionsDoc { + options = builtins.removeAttrs project.options [ "_module" ]; + warningsAreErrors = false; + # Unpack Nix types, e.g. literalExpression, mDoc. + transformOptions = + let isDocType = v: builtins.elem v [ "literalDocBook" "literalExpression" "literalMD" "mdDoc" ]; + in lib.attrsets.mapAttrs (_: v: + if v ? _type && isDocType v._type then + v.text + else if v ? _type && v._type == "derivation" then + v.name + else + v + ); + }; + + # Recursively search for outputs in the config. + # This is used when not building a specific output by attrpath. + build = options: config: + lib.concatMapAttrs + (name: option: + if lib.isOption option then + let typeName = option.type.name or ""; + in + if builtins.elem typeName [ "output" "outputOf" ] then + { ${name} = config.${name}; } + else { } + else + let v = build option config.${name}; + in if v != { } then { + ${name} = v; + } else { } + ) + options; + + systems = [ "x86_64-linux" "aarch64-linux" "x86_64-darwin" "aarch64-darwin" ]; + in + { + devShell = lib.genAttrs systems (system: config.shell); + packages = lib.genAttrs systems (system: { + optionsJSON = options.optionsJSON; + # deprecated + inherit (config) info procfileScript procfileEnv procfile; + ci = config.ciDerivation; + }); + devenv = config; + build = build project.options project.config; + }; + } diff --git a/templates/rde/.devenv/bash b/templates/rde/.devenv/bash new file mode 120000 index 0000000..7861178 --- /dev/null +++ b/templates/rde/.devenv/bash @@ -0,0 +1 @@ +/nix/store/w6y2cw4j0x2vwfg5pbcdvs5777f9g6af-bash-interactive-5.3p0 \ No newline at end of file diff --git a/templates/rde/.devenv/devenv.json b/templates/rde/.devenv/devenv.json new file mode 100644 index 0000000..383c521 --- /dev/null +++ b/templates/rde/.devenv/devenv.json @@ -0,0 +1 @@ +{"inputs":{"nixpkgs":{"url":"github:cachix/devenv-nixpkgs/rolling"}}} \ No newline at end of file diff --git a/templates/rde/.devenv/flake.json b/templates/rde/.devenv/flake.json new file mode 100644 index 0000000..3b139e1 --- /dev/null +++ b/templates/rde/.devenv/flake.json @@ -0,0 +1 @@ +{"nixpkgs":{"url":"github:cachix/devenv-nixpkgs/rolling"}} \ No newline at end of file diff --git a/templates/rde/.devenv/gc/shell b/templates/rde/.devenv/gc/shell new file mode 120000 index 0000000..cd8b684 --- /dev/null +++ b/templates/rde/.devenv/gc/shell @@ -0,0 +1 @@ +shell-7-link \ No newline at end of file diff --git a/templates/rde/.devenv/gc/shell-7-link b/templates/rde/.devenv/gc/shell-7-link new file mode 120000 index 0000000..0c048b2 --- /dev/null +++ b/templates/rde/.devenv/gc/shell-7-link @@ -0,0 +1 @@ +/nix/store/d128nm92pwnf9zqc35q6lddwqf6scjlq-devenv-shell-env \ No newline at end of file diff --git a/templates/rde/.devenv/imports.txt b/templates/rde/.devenv/imports.txt new file mode 100644 index 0000000..e69de29 diff --git a/templates/rde/.devenv/input-paths.txt b/templates/rde/.devenv/input-paths.txt new file mode 100644 index 0000000..c735915 --- /dev/null +++ b/templates/rde/.devenv/input-paths.txt @@ -0,0 +1,7 @@ +/Users/daniel/_work_system/10_19_development/13_configs/13.05_project_template/templates/rde/.devenv/flake.json +/Users/daniel/_work_system/10_19_development/13_configs/13.05_project_template/templates/rde/.devenv.flake.nix +/Users/daniel/_work_system/10_19_development/13_configs/13.05_project_template/templates/rde/.env +/Users/daniel/_work_system/10_19_development/13_configs/13.05_project_template/templates/rde/devenv.local.nix +/Users/daniel/_work_system/10_19_development/13_configs/13.05_project_template/templates/rde/devenv.lock +/Users/daniel/_work_system/10_19_development/13_configs/13.05_project_template/templates/rde/devenv.nix +/Users/daniel/_work_system/10_19_development/13_configs/13.05_project_template/templates/rde/devenv.yaml \ No newline at end of file diff --git a/templates/rde/.devenv/load-exports b/templates/rde/.devenv/load-exports new file mode 100755 index 0000000..8b13789 --- /dev/null +++ b/templates/rde/.devenv/load-exports @@ -0,0 +1 @@ + diff --git a/templates/rde/.devenv/nix-eval-cache.db b/templates/rde/.devenv/nix-eval-cache.db new file mode 100644 index 0000000..8fa9c1e Binary files /dev/null and b/templates/rde/.devenv/nix-eval-cache.db differ diff --git a/templates/rde/.devenv/nix-eval-cache.db-shm b/templates/rde/.devenv/nix-eval-cache.db-shm new file mode 100644 index 0000000..9567ba2 Binary files /dev/null and b/templates/rde/.devenv/nix-eval-cache.db-shm differ diff --git a/templates/rde/.devenv/nix-eval-cache.db-wal b/templates/rde/.devenv/nix-eval-cache.db-wal new file mode 100644 index 0000000..3be54f6 Binary files /dev/null and b/templates/rde/.devenv/nix-eval-cache.db-wal differ diff --git a/templates/rde/.devenv/profile b/templates/rde/.devenv/profile new file mode 120000 index 0000000..a69c7cb --- /dev/null +++ b/templates/rde/.devenv/profile @@ -0,0 +1 @@ +/nix/store/ddih6n6jg2804pmhqnmbf2xwbhm225wv-devenv-profile \ No newline at end of file diff --git a/templates/rde/.devenv/run b/templates/rde/.devenv/run new file mode 120000 index 0000000..084ad51 --- /dev/null +++ b/templates/rde/.devenv/run @@ -0,0 +1 @@ +/tmp/nix-shell.loyuJp/devenv-e545512 \ No newline at end of file diff --git a/templates/rde/.devenv/tasks.db b/templates/rde/.devenv/tasks.db new file mode 100644 index 0000000..5e536e5 Binary files /dev/null and b/templates/rde/.devenv/tasks.db differ diff --git a/templates/rde/.devenv/tasks.db-wal b/templates/rde/.devenv/tasks.db-wal new file mode 100644 index 0000000..b10c0af Binary files /dev/null and b/templates/rde/.devenv/tasks.db-wal differ diff --git a/templates/rde/.gitignore b/templates/rde/.gitignore deleted file mode 100644 index 257b14e..0000000 --- a/templates/rde/.gitignore +++ /dev/null @@ -1,19 +0,0 @@ -# Devenv -.devenv* -devenv.local.nix - -# direnv -.direnv - -# pre-commit -.pre-commit-config.yaml - -# Devenv -.devenv* -devenv.local.nix - -# direnv -.direnv - -# pre-commit -.pre-commit-config.yaml