Improve REPL prompt

finchie
Mar 30, 2024, 3:01 AM
MAVDUPWDQS4KHMH7THPDZYX53CLT4FTIXBU2DW5G22UTYY5BBWZQC

Dependencies

  • [2] WMUFQJFX Show custom prompt inside version control shell
  • [3] BAT5B53O Refuse to rebuild until repository has no unrecorded changes
  • [4] HINOSPQO Add simple nushell update script
  • [*] KV37II4V

Change contents

  • edit in update.nu at line 6
    [3.186]
    [3.186]
    use repo.nu len-unrecorded;
  • replacement in update.nu at line 27
    [3.54][3.54:96]()
    while (pijul diff -us | str length) > 0 {
    [3.54]
    [3.96]
    while (len-unrecorded) > 0 {
  • replacement in update.nu at line 30
    [3.228][2.68:187]()
    nu --interactive --execute $'$env.PROMPT_COMMAND = {|| "($prompt_command)"}; enter ($parent_dir); pijul diff -us';
    [3.228]
    [3.296]
    nu --interactive --execute $"enter ($parent_dir); use ($parent_dir | path join repo.nu) repl-prompt; $env.PROMPT_COMMAND = {|| repl-prompt }; pijul diff -us";
  • file addition: repo.nu (----------)
    [6.1]
    export def len-unrecorded [] {
    pijul diff -us | lines | length
    }
    export def repl-prompt [] {
    let unrecorded = len-unrecorded;
    if ($unrecorded > 1) {
    $"(ansi red)($unrecorded) unrecorded changes(ansi reset)"
    } else if ($unrecorded == 1) {
    $"(ansi red)1 unrecorded change(ansi reset)"
    } else {
    $"(ansi green)no untracked changes(ansi reset)"
    }
    }