nix all the things

rename log script to ll, move it to standalone file

karitham.dev 6ee14995 985276f0

verified
+46 -33
-29
modules/dev/shell/nushell.nix
··· 19 19 20 20 source-env (if ("~/.profile.nu" | path exists) { "~/.profile.nu" } else null) 21 21 22 - def log [] { 23 - let now = date now 24 - let log_dir = $"($env.HOME)/notes/logs/($now | format date "%Y/%m")" 25 - 26 - if not ($log_dir | path exists) { mkdir $log_dir } 27 - 28 - cd $log_dir 29 - 30 - run-external $env.EDITOR $"($now | format date "%d").md" 31 - 32 - job spawn { 33 - do { 34 - let msg = $"Log update: ($now | format date '%F %T')" 35 - 36 - if (jj log --no-graph -r $"@- & files\('logs')" | is-not-empty) { 37 - jj squash --ignore-immutable --message $msg 38 - jj bookmark set main -r @- 39 - jj git push -b main 40 - } else { 41 - jj describe -m $msg 42 - jj bookmark set main -r @ 43 - jj git push -b main 44 - } 45 - 46 - ${lib.getExe' pkgs.libnotify "notify-send"} "Log Synced" $"Updates pushed to git.\n($msg)" 47 - } | complete 48 - } | ignore 49 - } 50 - 51 22 ${lib.getExe pkgs.pokego} -l french 52 23 ''; 53 24
+14 -4
modules/dev/tools/default.nix
··· 4 4 pkgs, 5 5 ... 6 6 }: 7 + let 8 + scripts = lib.pipe ./scripts [ 9 + builtins.readDir 10 + (lib.mapAttrsToList ( 11 + name: type: { 12 + name = "bin/${lib.removeSuffix ".nu" name}"; 13 + path = ./scripts + "/${name}"; 14 + } 15 + )) 16 + (pkgs.linkFarm "dev-tools-scripts") 17 + ]; 18 + in 7 19 { 8 20 config = lib.mkIf config.dev.tools.enable { 9 21 home.packages = [ 10 22 pkgs.sd 11 23 pkgs.fd 12 24 pkgs.uutils-coreutils-noprefix 25 + scripts 13 26 ]; 14 27 15 28 programs = { 16 29 zoxide.enable = true; 17 30 carapace.enable = true; 18 - 19 31 ripgrep.enable = true; 20 32 bat.enable = true; 21 33 less = { ··· 28 40 }; 29 41 }; 30 42 31 - imports = [ 32 - ./direnv.nix 33 - ]; 43 + imports = [ ./direnv.nix ]; 34 44 }
+31
modules/dev/tools/scripts/ll.nu
··· 1 + #!/usr/bin/env nix-shell 2 + #!nix-shell -i nu -p nushell jujutsu libnotify 3 + 4 + def main [] { 5 + let now = (date now) 6 + let log_dir = $"($env.HOME)/notes/logs/($now | format date "%Y/%m")" 7 + 8 + if not ($log_dir | path exists) { mkdir $log_dir } 9 + 10 + cd $log_dir 11 + 12 + run-external $env.EDITOR $"($now | format date "%d").md" 13 + 14 + job spawn { 15 + do { 16 + let msg = $"Log update: ($now | format date '%F %T')" 17 + 18 + if (jj log --no-graph -r $"@- & files\('logs')" | is-not-empty) { 19 + jj squash --ignore-immutable --message $msg 20 + jj bookmark set main -r @- 21 + jj git push -b main 22 + } else { 23 + jj describe -m $msg 24 + jj bookmark set main -r @ 25 + jj git push -b main 26 + } 27 + 28 + notify-send "Log Synced" $"Updates pushed to git.\n($msg)" 29 + } | complete 30 + } | ignore 31 + }
+1
modules/opencode/default.nix
··· 38 38 permission = { 39 39 todoread = "deny"; 40 40 todowrite = "deny"; 41 + external_directory = lib.genAttrs [ "~/go/pkg/mod/**" ] (_: "allow"); 41 42 }; 42 43 mcp = lib.mkIf cfg.enableMcp { 43 44 gopls = {