diff --git a/modules/dev/tools/default.nix b/modules/dev/tools/default.nix index 3017a17..5eb6368 100644 --- a/modules/dev/tools/default.nix +++ b/modules/dev/tools/default.nix @@ -22,6 +22,7 @@ in pkgs.sd pkgs.fd pkgs.uutils-coreutils-noprefix + pkgs.libnotify scripts ]; diff --git a/modules/dev/tools/scripts/ll.nu b/modules/dev/tools/scripts/ll.nu index debc947..2a837a3 100755 --- a/modules/dev/tools/scripts/ll.nu +++ b/modules/dev/tools/scripts/ll.nu @@ -1,31 +1,22 @@ -#!/usr/bin/env nix-shell -#!nix-shell -i nu -p nushell jujutsu libnotify +#!/usr/bin/env -S nu --no-config-file +# we assume jj & nushell & libnotify are in path def main [] { let now = (date now) - let log_dir = $"($env.HOME)/notes/logs/($now | format date "%Y/%m")" + let date_path = ($now | format date "%Y/%m") + let day_file = ($now | format date "%d.md") + let log_dir = $"($env.HOME)/notes/logs/($date_path)" - if not ($log_dir | path exists) { mkdir $log_dir } + mkdir $log_dir - cd $log_dir - - run-external $env.EDITOR $"($now | format date "%d").md" + let target = ($log_dir | path join $day_file) + run-external $env.EDITOR $target - job spawn { - do { - let msg = $"Log update: ($now | format date '%F %T')" + cd $log_dir - if (jj log --no-graph -r $"@- & files\('logs')" | is-not-empty) { - jj squash --ignore-immutable --message $msg - jj bookmark set main -r @- - jj git push -b main - } else { - jj describe -m $msg - jj bookmark set main -r @ - jj git push -b main - } + jj describe -m $"Log update: ($now | format date '%F %T')" + jj bookmark set main -r @ + jj git push -b main - notify-send "Log Synced" $"Updates pushed to git.\n($msg)" - } | complete - } | ignore + notify-send 'Log Synced' 'Updates pushed to git.' }