nix all the things

improve ll script

karitham.dev ad7dd896 6ee14995

verified
+14 -22
+1
modules/dev/tools/default.nix
··· 22 22 pkgs.sd 23 23 pkgs.fd 24 24 pkgs.uutils-coreutils-noprefix 25 + pkgs.libnotify 25 26 scripts 26 27 ]; 27 28
+13 -22
modules/dev/tools/scripts/ll.nu
··· 1 - #!/usr/bin/env nix-shell 2 - #!nix-shell -i nu -p nushell jujutsu libnotify 1 + #!/usr/bin/env -S nu --no-config-file 2 + # we assume jj & nushell & libnotify are in path 3 3 4 4 def main [] { 5 5 let now = (date now) 6 - let log_dir = $"($env.HOME)/notes/logs/($now | format date "%Y/%m")" 6 + let date_path = ($now | format date "%Y/%m") 7 + let day_file = ($now | format date "%d.md") 8 + let log_dir = $"($env.HOME)/notes/logs/($date_path)" 7 9 8 - if not ($log_dir | path exists) { mkdir $log_dir } 10 + mkdir $log_dir 11 + 12 + let target = ($log_dir | path join $day_file) 13 + run-external $env.EDITOR $target 9 14 10 15 cd $log_dir 11 16 12 - run-external $env.EDITOR $"($now | format date "%d").md" 17 + jj describe -m $"Log update: ($now | format date '%F %T')" 18 + jj bookmark set main -r @ 19 + jj git push -b main 13 20 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 21 + notify-send 'Log Synced' 'Updates pushed to git.' 31 22 }