diff --git a/flake.nix b/flake.nix index 0252b74..044f98e 100644 --- a/flake.nix +++ b/flake.nix @@ -9,7 +9,7 @@ # Nix on Droid nix-on-droid = { - url = "github:t184256/nix-on-droid/release-22.11"; + url = "github:t184256/nix-on-droid/release-23.05"; # url = "github:t184256/nix-on-droid/master"; inputs.nixpkgs.follows = "nixpkgs"; inputs.home-manager.follows = "home-manager"; diff --git a/machines/nix-darwin/x86_64-darwin/limontozu/home/pavelatanasov.nix b/machines/nix-darwin/x86_64-darwin/limontozu/home/pavelatanasov.nix index 4aecb1d..efbb060 100644 --- a/machines/nix-darwin/x86_64-darwin/limontozu/home/pavelatanasov.nix +++ b/machines/nix-darwin/x86_64-darwin/limontozu/home/pavelatanasov.nix @@ -7,43 +7,21 @@ stateVersion = "23.05"; }; - # Let Home Manager install and manage itself. - programs.home-manager.enable = true; - - # Use this flake's version of nixpkgs - home.sessionVariables = { - # NIX_PATH = "nixpkgs=${inputs.nixpkgs}"; - NIX_PATH = - builtins.concatStringsSep - ":" - (lib.mapAttrsToList - (name: input: - "${name}=${input.sourceInfo.outPath}") - inputs); + # Add custom overlays + nixpkgs = { + overlays = [ + inputs.neovim-nightly-overlay.overlay + inputs.zig-overlay.overlays.default + ]; }; - # { - # _type = "flake"; - # inputs = ; - # lastModified = 1686838567; - # lastModifiedDate = "20230615141607"; - # narHash = "sha256-aqKCUD126dRlVSKV6vWuDCitfjFrZlkwNuvj5LtjRRU="; - # nixosModules = ; - # outPath = "/nix/store/mf3nazm479fkbh9n3v7n73yrcvr8avi6-source"; - # outputs = { - # nixosModules = ; - # }; - # rev = "429f232fe1dc398c5afea19a51aad6931ee0fb89"; - # shortRev = "429f232"; - # sourceInfo = { - # lastModified = 1686838567; - # lastModifiedDate = "20230615141607"; - # narHash = "sha256-aqKCUD126dRlVSKV6vWuDCitfjFrZlkwNuvj5LtjRRU="; - # outPath = "/nix/store/mf3nazm479fkbh9n3v7n73yrcvr8avi6-source"; - # rev = "429f232fe1dc398c5afea19a51aad6931ee0fb89"; - # shortRev = "429f232"; - # }; - # } + # Set env vars + home.sessionVariables = { + EDITOR = "nvim"; + }; + + # Let Home Manager install and manage itself. + programs.home-manager.enable = true; home.packages = with pkgs; [ # WM @@ -76,7 +54,7 @@ gnupg pinentry_mac (pass.withExtensions (extensions: with extensions; [ - pass-otp + pass-otp ])) # FMI @@ -107,15 +85,6 @@ }; }; - nixpkgs = { - overlays = lib.attrValues outputs.overlays ++ [ - inputs.neovim-nightly-overlay.overlay - inputs.zig-overlay.overlays.default - ]; - - config.allowUnfree = true; - }; - programs.git = { enable = true; userName = "reo101"; @@ -139,7 +108,7 @@ }; home.file.".gnupg/sshcontrol" = { - text ='' + text = '' CFDE97EDC2FDB2FD27020A084F1E3F40221BAFE7 ''; }; diff --git a/machines/nix-on-droid/aarch64-linux/cheetah/home.nix b/machines/nix-on-droid/aarch64-linux/cheetah/home.nix index 04059be..9df97eb 100644 --- a/machines/nix-on-droid/aarch64-linux/cheetah/home.nix +++ b/machines/nix-on-droid/aarch64-linux/cheetah/home.nix @@ -7,7 +7,16 @@ username = "nix-on-droid"; # username = "reo101"; homeDirectory = "/data/data/com.termux.nix/files/home"; - stateVersion = "22.11"; + stateVersion = "23.05"; + }; + + # Add custom overlays + nixpkgs = { + overlays = [ + inputs.neovim-nightly-overlay.overlay + inputs.zig-overlay.overlays.default + # inputs.zls-overlay.??? + ]; }; # Let Home Manager install and manage itself. @@ -65,16 +74,6 @@ j ]; - nixpkgs = { - overlays = [ - inputs.neovim-nightly-overlay.overlay - inputs.zig-overlay.overlays.default - # inputs.zls-overlay.??? - ]; - - config.allowUnfree = true; - }; - programs.neovim = { enable = true; package = pkgs.neovim-nightly; diff --git a/modules/home-manager/nix-general/default.nix b/modules/home-manager/nix-general/default.nix new file mode 100644 index 0000000..27b2cc9 --- /dev/null +++ b/modules/home-manager/nix-general/default.nix @@ -0,0 +1,28 @@ +{ inputs, outputs, ... }: +{ lib, pkgs, config, ... }: + +{ + imports = [ ]; + + options = { }; + + config = { + # Add flake inputs to $NIX_PATH + home.sessionVariables = { + NIX_PATH = + builtins.concatStringsSep + ":" + (lib.mapAttrsToList + (name: input: + "${name}=${input.sourceInfo.outPath}") + inputs); + }; + + # Use flake overlays by default + nixpkgs = { + overlays = lib.attrValues outputs.overlays; + + config.allowUnfree = true; + }; + }; +} diff --git a/modules/home-manager/reo101-shell/atuin.nix b/modules/home-manager/reo101-shell/atuin.nix new file mode 100644 index 0000000..bb9ef02 --- /dev/null +++ b/modules/home-manager/reo101-shell/atuin.nix @@ -0,0 +1,79 @@ +{ keyPath, ... }: + +'' +## where to store your database, default is your system data directory +## mac: ~/Library/Application Support/com.elliehuxtable.atuin/history.db +## linux: ~/.local/share/atuin/history.db +# db_path = "~/.history.db" + +## where to store your encryption key, default is your system data directory +key_path = "${keyPath}" + +## where to store your auth session token, default is your system data directory +# session_path = "~/.key" + +## date format used, either "us" or "uk" +# dialect = "us" + +## enable or disable automatic sync +auto_sync = true + +## enable or disable automatic update checks +update_check = false + +## address of the sync server +sync_address = "https://naboo.qtrp.org/atuin" + +## how often to sync history. note that this is only triggered when a command +## is ran, so sync intervals may well be longer +## set it to 0 to sync after every command +sync_frequency = "1m" + +## which search mode to use +## possible values: prefix, fulltext, fuzzy, skim +# search_mode = "fuzzy" + +## which filter mode to use +## possible values: global, host, session, directory +filter_mode = "global" + +# ## which filter mode to use when atuin is invoked from a shell up-key binding +# ## the accepted values are identical to those of "filter_mode" +# ## leave unspecified to use same mode set in "filter_mode" +# filter_mode_shell_up_keybinding = "session" + +## which style to use +## possible values: auto, full, compact +# style = "auto" + +## the maximum number of lines the interface should take up +## set it to 0 to always go full screen +# inline_height = 0 + +## enable or disable showing a preview of the selected command +## useful when the command is longer than the terminal width and is cut off +# show_preview = false + +## what to do when the escape key is pressed when searching +## possible values: return-original, return-query +# exit_mode = "return-original" + +## possible values: emacs, subl +# word_jump_mode = "emacs" + +## characters that count as a part of a word +# word_chars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789" + +## number of context lines to show when scrolling by pages +# scroll_context_lines = 1 + +## prevent commands matching any of these regexes from being written to history. +## Note that these regular expressions are unanchored, i.e. if they don't start +## with ^ or end with $, they'll match anywhere in the command. +## For details on the supported regular expression syntax, see +## https://docs.rs/regex/latest/regex/#syntax +# history_filter = [ +# "^secret-cmd", +# "^innocuous-cmd .*--secret=.+" +# ] +'' diff --git a/modules/home-manager/reo101-shell/default.nix b/modules/home-manager/reo101-shell/default.nix index 32c253a..62f48db 100644 --- a/modules/home-manager/reo101-shell/default.nix +++ b/modules/home-manager/reo101-shell/default.nix @@ -68,6 +68,14 @@ in ]) ]; + # Atuin + home.file."${config.xdg.configHome}/config.toml" = mkIf cfg.atuin { + text = import ./atuin.nix { + keyPath = "${config.xdg.dataHome}/atuin/key"; + }; + }; + + # Direnv programs.direnv = mkIf cfg.direnv { enable = true; @@ -76,6 +84,14 @@ in }; }; + # Starship + programs.starship = { + enable = true; + + settings = import ./starship.nix { username = cfg.username; }; + }; + + # Zsh programs.zsh = { enable = true; enableCompletion = true; @@ -174,274 +190,6 @@ in } ]; }; - - home.file.".config/atuin/config.toml" = mkIf cfg.atuin { - text = '' - ## where to store your database, default is your system data directory - ## mac: ~/Library/Application Support/com.elliehuxtable.atuin/history.db - ## linux: ~/.local/share/atuin/history.db - # db_path = "~/.history.db" - - ## where to store your encryption key, default is your system data directory - # key_path = "~/.key" - - ## where to store your auth session token, default is your system data directory - # session_path = "~/.key" - - ## date format used, either "us" or "uk" - # dialect = "us" - - ## enable or disable automatic sync - auto_sync = true - - ## enable or disable automatic update checks - update_check = false - - ## address of the sync server - sync_address = "https://naboo.qtrp.org/atuin" - - ## how often to sync history. note that this is only triggered when a command - ## is ran, so sync intervals may well be longer - ## set it to 0 to sync after every command - sync_frequency = "1m" - - ## which search mode to use - ## possible values: prefix, fulltext, fuzzy, skim - # search_mode = "fuzzy" - - ## which filter mode to use - ## possible values: global, host, session, directory - filter_mode = "global" - - # ## which filter mode to use when atuin is invoked from a shell up-key binding - # ## the accepted values are identical to those of "filter_mode" - # ## leave unspecified to use same mode set in "filter_mode" - # filter_mode_shell_up_keybinding = "session" - - ## which style to use - ## possible values: auto, full, compact - # style = "auto" - - ## the maximum number of lines the interface should take up - ## set it to 0 to always go full screen - # inline_height = 0 - - ## enable or disable showing a preview of the selected command - ## useful when the command is longer than the terminal width and is cut off - # show_preview = false - - ## what to do when the escape key is pressed when searching - ## possible values: return-original, return-query - # exit_mode = "return-original" - - ## possible values: emacs, subl - # word_jump_mode = "emacs" - - ## characters that count as a part of a word - # word_chars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789" - - ## number of context lines to show when scrolling by pages - # scroll_context_lines = 1 - - ## prevent commands matching any of these regexes from being written to history. - ## Note that these regular expressions are unanchored, i.e. if they don't start - ## with ^ or end with $, they'll match anywhere in the command. - ## For details on the supported regular expression syntax, see - ## https://docs.rs/regex/latest/regex/#syntax - # history_filter = [ - # "^secret-cmd", - # "^innocuous-cmd .*--secret=.+" - # ] - ''; - }; - - programs.starship = { - enable = true; - - settings = { - # Get editor completions based on the config schema - "$schema" = "https://starship.rs/config-schema.json"; - - # Use custom format - format = '' - [╭───────┨](bold green)[${cfg.username}](bright-white)[@](bold yellow)$hostname[┠───────>](bold green)$status$cmd_duration$git_branch$git_status$git_state$git_commit - [│](bold green)$time$jobs: $directory$package - [╰─](bold green)$character - ''; - - # ${custom.local}\ - # ${custom.local_root}\ - # ${custom.ssh}\ - # ${custom.ssh_root}\ - - add_newline = true; - - character = { - success_symbol = "[→](bold green)"; - error_symbol = "[→](red)"; - }; - - git_branch = { - symbol = "🌱 "; - truncation_length = 15; - truncation_symbol = "…"; # … - }; - - git_commit = { - commit_hash_length = 6; - tag_symbol = "🔖 "; - }; - - git_state = { - format = "[\($state( $progress_current of $progress_total)\)]($style) "; - cherry_pick = "[🍒 PICKING](bold red)"; - }; - - git_status = { - # conflicted = "🏳"; - # ahead = "🏎💨"; - # behind = "😰"; - # diverged = "😵"; - # untracked = "🤷‍"; - # stashed = "📦"; - # modified = "📝"; - # staged = '[++\($count\)](green)'; - # renamed = "👅"; - # deleted = "🗑"; - format = "[\\[$all_status$ahead_behind\\]]($style) "; - conflicted = "=[\($count\)](green) "; - ahead = "⇡[\($count\)](green) "; - behind = "⇣[\($count\)](green) "; - diverged = "⇕[\($count\)](green) "; - untracked = "?[\($count\)](green) "; - stashed = "$[\($count\)](green) "; - modified = "![\($count\)](green) "; - staged = "+[\($count\)](green) "; - renamed = "»[\($count\)](green) "; - deleted = "✘[\($count\)](green) "; - }; - - status = { - style = "bg:blue fg:red"; - symbol = "🔴"; - format = "[\[$symbol $common_meaning$signal_name$maybe_int\]]($style) "; - map_symbol = true; - disabled = false; - }; - - time = { - disabled = false; - format = "🕙[$time]($style) "; - # format = '🕙[\[ $time \]]($style) '; - time_format = "%T"; - utc_time_offset = "+3"; - # time_range = "10:00:00-14:00:00"; - }; - - cmd_duration = { - min_time = 2000; # miliseconds - # show_notifications = true; - min_time_to_notify = 45000; # miliseconds - format = "took [$duration](bold yellow) "; - }; - - hostname = { - ssh_only = false; - format = "[$hostname](bold fg:#CC59B0)"; - disabled = false; - }; - - username = { - disabled = false; - style_user = "white bold"; - style_root = "red bold"; - format = "[$user]($style)[@](bold yellow)"; - show_always = true; - }; - - directory = { - read_only = "🔒"; - read_only_style = "bold white"; - style = "fg:#A7F3E4"; - truncate_to_repo = false; - truncation_length = 5; - truncation_symbol = "…/"; - home_symbol = "🏡"; - format = "[$read_only]($read_only_style)[$path]($style) "; - }; - - directory.substitutions = { - ".config" = " "; - "nvim" = ""; - "emacs" = "𝓔"; - "doom" = "𝓔"; - "Projects" = "💻"; - "FMI" = "🏫"; - "Home" = "🏠"; - "CPP" = ""; - "Java" = ""; - "Python" = ""; - }; - - # Language Environments - package = { - style = "bold fg:#5E5E5E"; - }; - - python = { - style = "bold fg:#5E5E5E"; - symbol = "[](bold yellow) "; - }; - - nodejs = { - style = "bold fg:#5E5E5E"; - symbol = "[⬢](bold green) "; - }; - - # Custom - jobs = { - format = "[ $symbol$number ]($style)"; - style = "bg:#587744 fg:bright-white"; - symbol = "⚙"; - }; - - custom.local = { - shell = [ "zsh" "-d" "-f" ]; - when = '' [ [ -z "$SSH_CLIENT" ] ] && [ [ `whoami` != "root" ] ] ''; - format = "[$symbol$output]($style)[@](bold yellow)"; - command = "whoami"; - style = "fg:bright-white"; - symbol = ""; - }; - - custom.local_root = { - shell = [ "zsh" "-d" "-f" ]; - when = '' [ [ -z "$SSH_CLIENT" ] ] && [ [ `whoami` == "root" ] ] ''; - format = "[ $output ]($style)[@](bold yellow)"; - command = "whoami"; - style = "bg:red fg:bright-white"; - }; - - custom.ssh = { - shell = [ "zsh" "-d" "-f" ]; - when = '' [ [ -n "$SSH_CLIENT" ] ] && [ [ `whoami` != "root" ] ] ''; - format = "[ $symbol$output ]($style)[@](bold yellow)"; - command = "whoami"; - style = "bg:blue fg:bright-white"; - # style = "bg:#FD7208 fg:bright-white"; - symbol = "⌁"; - }; - - custom.ssh_root = { - shell = [ "zsh" "-d" "-f" ]; - when = '' [ [ -n "$SSH_CLIENT" ] ] && [ [ `whoami` == "root" ] ] ''; - format = "[ $symbol$output ]($style)[@](bold yellow)"; - command = "whoami"; - style = "bg:red fg:bright-white"; - symbol = "⌁"; - }; - }; - }; }; meta = { diff --git a/modules/home-manager/reo101-shell/starship.nix b/modules/home-manager/reo101-shell/starship.nix new file mode 100644 index 0000000..fdd5889 --- /dev/null +++ b/modules/home-manager/reo101-shell/starship.nix @@ -0,0 +1,184 @@ +{ username }: +{ + # Get editor completions based on the config schema + "$schema" = "https://starship.rs/config-schema.json"; + + # Use custom format + format = '' + [╭───────┨](bold green)[${username}](bright-white)[@](bold yellow)$hostname[┠───────>](bold green)$status$cmd_duration$git_branch$git_status$git_state$git_commit + [│](bold green)$time$jobs: $directory$package + [╰─](bold green)$character + ''; + + # ${custom.local}\ + # ${custom.local_root}\ + # ${custom.ssh}\ + # ${custom.ssh_root}\ + + add_newline = true; + + character = { + success_symbol = "[→](bold green)"; + error_symbol = "[→](red)"; + }; + + git_branch = { + symbol = "🌱 "; + truncation_length = 15; + truncation_symbol = "…"; # … + }; + + git_commit = { + commit_hash_length = 6; + tag_symbol = "🔖 "; + }; + + git_state = { + format = "[\($state( $progress_current of $progress_total)\)]($style) "; + cherry_pick = "[🍒 PICKING](bold red)"; + }; + + git_status = { + # conflicted = "🏳"; + # ahead = "🏎💨"; + # behind = "😰"; + # diverged = "😵"; + # untracked = "🤷‍"; + # stashed = "📦"; + # modified = "📝"; + # staged = '[++\($count\)](green)'; + # renamed = "👅"; + # deleted = "🗑"; + format = "[\\[$all_status$ahead_behind\\]]($style) "; + conflicted = "=[\($count\)](green) "; + ahead = "⇡[\($count\)](green) "; + behind = "⇣[\($count\)](green) "; + diverged = "⇕[\($count\)](green) "; + untracked = "?[\($count\)](green) "; + stashed = "$[\($count\)](green) "; + modified = "![\($count\)](green) "; + staged = "+[\($count\)](green) "; + renamed = "»[\($count\)](green) "; + deleted = "✘[\($count\)](green) "; + }; + + status = { + style = "bg:blue fg:red"; + symbol = "🔴"; + format = "[\[$symbol $common_meaning$signal_name$maybe_int\]]($style) "; + map_symbol = true; + disabled = false; + }; + + time = { + disabled = false; + format = "🕙[$time]($style) "; + # format = '🕙[\[ $time \]]($style) '; + time_format = "%T"; + utc_time_offset = "+3"; + # time_range = "10:00:00-14:00:00"; + }; + + cmd_duration = { + min_time = 2000; # miliseconds + # show_notifications = true; + min_time_to_notify = 45000; # miliseconds + format = "took [$duration](bold yellow) "; + }; + + hostname = { + ssh_only = false; + format = "[$hostname](bold fg:#CC59B0)"; + disabled = false; + }; + + username = { + disabled = false; + style_user = "white bold"; + style_root = "red bold"; + format = "[$user]($style)[@](bold yellow)"; + show_always = true; + }; + + directory = { + read_only = "🔒"; + read_only_style = "bold white"; + style = "fg:#A7F3E4"; + truncate_to_repo = false; + truncation_length = 5; + truncation_symbol = "…/"; + home_symbol = "🏡"; + format = "[$read_only]($read_only_style)[$path]($style) "; + }; + + directory.substitutions = { + ".config" = " "; + "nvim" = ""; + "emacs" = "𝓔"; + "doom" = "𝓔"; + "Projects" = "💻"; + "FMI" = "🏫"; + "Home" = "🏠"; + "CPP" = ""; + "Java" = ""; + "Python" = ""; + }; + + # Language Environments + package = { + style = "bold fg:#5E5E5E"; + }; + + python = { + style = "bold fg:#5E5E5E"; + symbol = "[](bold yellow) "; + }; + + nodejs = { + style = "bold fg:#5E5E5E"; + symbol = "[⬢](bold green) "; + }; + + # Custom + jobs = { + format = "[ $symbol$number ]($style)"; + style = "bg:#587744 fg:bright-white"; + symbol = "⚙"; + }; + + custom.local = { + shell = [ "zsh" "-d" "-f" ]; + when = '' [ [ -z "$SSH_CLIENT" ] ] && [ [ `whoami` != "root" ] ] ''; + format = "[$symbol$output]($style)[@](bold yellow)"; + command = "whoami"; + style = "fg:bright-white"; + symbol = ""; + }; + + custom.local_root = { + shell = [ "zsh" "-d" "-f" ]; + when = '' [ [ -z "$SSH_CLIENT" ] ] && [ [ `whoami` == "root" ] ] ''; + format = "[ $output ]($style)[@](bold yellow)"; + command = "whoami"; + style = "bg:red fg:bright-white"; + }; + + custom.ssh = { + shell = [ "zsh" "-d" "-f" ]; + when = '' [ [ -n "$SSH_CLIENT" ] ] && [ [ `whoami` != "root" ] ] ''; + format = "[ $symbol$output ]($style)[@](bold yellow)"; + command = "whoami"; + style = "bg:blue fg:bright-white"; + # style = "bg:#FD7208 fg:bright-white"; + symbol = "⌁"; + }; + + custom.ssh_root = { + shell = [ "zsh" "-d" "-f" ]; + when = '' [ [ -n "$SSH_CLIENT" ] ] && [ [ `whoami` == "root" ] ] ''; + format = "[ $symbol$output ]($style)[@](bold yellow)"; + command = "whoami"; + style = "bg:red fg:bright-white"; + symbol = "⌁"; + }; +} diff --git a/util/default.nix b/util/default.nix index 446a1cf..8f64cd6 100644 --- a/util/default.nix +++ b/util/default.nix @@ -163,7 +163,7 @@ rec { useGlobalPkgs = false; useUserPackages = true; sharedModules = builtins.attrValues homeManagerModules; - extraSpecialArgs = { inherit inputs; }; + extraSpecialArgs = { inherit inputs outputs; }; }; } ] ++ (builtins.attrValues nixOnDroidModules); diff --git a/util/test.nix b/util/test.nix new file mode 100644 index 0000000..55638b1 --- /dev/null +++ b/util/test.nix @@ -0,0 +1,103 @@ +# { lib, stdenv, darwin, fetchFromGitHub, rustPlatform, openssl, pkg-config, libxkbcommon }: + +# # rustPlatform.buildRustPackage rec { +# rec { +# pname = "vim-fmi-cli"; +# version = "0.2.0"; +# +# src = fetchFromGitHub { +# owner = "AndrewRadev"; +# repo = pname; +# rev = "v${version}"; +# sha256 = "sha256-RAlvDiNvDVRNtex0aD8WESc4R/lskjda;sldfjmAr7FjWtgzHWa4ZSI="; +# }; +# } + +# { +# a = ''''\'''${a}''\'''; +# +# src = fetchFromGitHub { +# owner = "g15ecb"; +# repo = "promela-mode"; +# rev = "53863e62cfedcd0466e1e19b1ca7b5786cb7a576"; +# # hash = "sha256-pOVIOj5XnZcNVFNyjMV7Iv0X+R+W+mQfT1o5nay2Kww="; +# }; +# } + +# let +# a = "v${b}.${c}.${d}"; +# b = "2"; +# c = "3"; +# d = "6"; +# rev = a; +# in +# rec { +# src = fetchTest { +# inherit a b c rev; +# }; +# rev = "aloda"; +# alo = da; +# } + +let + # kek + type = "256"; +in +let +in +rec { + pname = "vim-fmi-cli"; + version = "0.2.0"; + sha = "RAlvDiNvDVRNtex0aD8WESc4R/mAr7FjWtgzHWa4ZSI="; + sha256 = "sha${type}-${sha}"; + + kek = let + in rec {}; + + src = fetchFromGitHub { + owner = "AndrewRadev"; + repo = pname; + rev = "v${version}"; + inherit sha256; + }; +} + +# let +# bb = "2"; +# b = bb; +# in +# let +# # ... +# in +# fetchTest { +# a = "1"; +# inherit b; +# c = "3"; +# rev = "456"; +# } + +# let +# f = "2"; +# s = "3"; +# t = "4"; +# a = "1"; +# c = "2"; +# v = "${f}.${s}.${t}"; +# kek = rec { +# x = "5"; +# y = x; +# }; +# aloda = fetchTest rec { +# c = b; +# a = "2"; +# b = a; +# rev = "v${c}"; +# }; +# in +# fetchTest { +# inherit a c; +# m = a; +# b = "b"; +# aloda = "${a}b${c}d"; +# rev = "v${v}"; +# }