{ nix-shell = { wraps = "nix-shell"; body = '' command nix-shell $argv --command "fish" ''; }; nix = { wraps = "nix"; body = '' if status is-interactive and test (count $argv) = 1 -a "$argv[1]" = develop nix develop --command (status fish-path) else command nix $argv end ''; }; nix-prefetch-hash = { body = '' nix-hash --type sha256 --to-base64 (nix-prefetch-url $argv) ''; }; fish_jj_prompt = { body = '' if not command -sq jj return 1 end if not command -sq timeout return 1 end if set -q FISH_JJ return 0 end if not jj root &>/dev/null return 1 end # Generate prompt set -l info "$( timeout 5 jj log --ignore-working-copy --no-graph --color=always --revisions=@ --template " separate( ' ', self.change_id().shortest(), bookmarks.join(', '), if(conflict, label('conflict', '×')), if(empty, label('empty', '(empty)')), if(divergent, label('divergent', '(divergent)')), if(hidden, label('hidden', '(hidden)')), ) " )" or return 1 if test -n $info printf ' (jj: %s)' $info else return 1 end ''; }; fish_vcs_prompt = { body = '' fish_jj_prompt $argv or fish_git_prompt $argv or fish_hg_prompt $argv or fish_fossil_prompt $argv ''; }; }