34 lines
927 B
Fish
Executable file
34 lines
927 B
Fish
Executable file
#!/usr/bin/env fish
|
|
|
|
function z --wraps zathura
|
|
zathura "$argv[1]" &>/dev/null &
|
|
end
|
|
|
|
set -l src (path resolve $argv[1])
|
|
# echo $src
|
|
# string replace
|
|
set -l targ (string replace --filter '.typ' '.pdf' $src)
|
|
if test -f "$targ" -a '' != ''
|
|
# zathura "$targ" &>/dev/null &
|
|
z "$targ"
|
|
else
|
|
# no such file in current dir, time to search!
|
|
# if we're in a git repo, search from root
|
|
# if we're not, search from cwd
|
|
if git rev-parse --is-inside-work-tree &>/dev/null
|
|
echo in git
|
|
set -l root (git rev-parse --show-toplevel)
|
|
echo $root
|
|
set -l base (path basename --no-extension $src).pdf
|
|
set -l candidate (fd --no-ignore-vcs -F -1 "$base" "$root")
|
|
if test "$candidate" != ''
|
|
z "$candidate"
|
|
else
|
|
echo "$base" could not be found!
|
|
return 1
|
|
end
|
|
else
|
|
echo out git
|
|
set -l root (pwd)
|
|
end
|
|
end
|