75 lines
1.5 KiB
Fish
75 lines
1.5 KiB
Fish
function fishtools-startswith
|
|
set len1 (string length $argv[1])
|
|
set len2 (string length $argv[2])
|
|
if test $len1 -lt $len2
|
|
set tmp (string sub -l $len1 $argv[2])
|
|
if test $tmp = $argv[1]
|
|
return 0
|
|
end
|
|
else
|
|
set tmp (string sub -l $len2 $argv[1])
|
|
if test $tmp = $argv[2]
|
|
return 0
|
|
end
|
|
end
|
|
return 1
|
|
end
|
|
|
|
function fishtools-in-list
|
|
if test (count $argv) -ge 2
|
|
for i in $argv[2..-1]
|
|
if test "$i" = "$argv[1]"
|
|
return 0
|
|
end
|
|
end
|
|
end
|
|
return 1
|
|
end
|
|
|
|
function fishtools-enable-rust
|
|
if test -e $HOME/.cargo/bin
|
|
set real (realpath $HOME/.cargo/bin)
|
|
|
|
if not fishtools in $real $PATH
|
|
set -gx PATH $real $PATH
|
|
end
|
|
end
|
|
end
|
|
|
|
function fishtools-enable
|
|
for i in $argv
|
|
switch $i
|
|
case rust
|
|
fishtools-enable-rust
|
|
case '*'
|
|
echo "unsupported " $argv[1]
|
|
end
|
|
end
|
|
end
|
|
|
|
function fishtools
|
|
switch $argv[1]
|
|
case startswith
|
|
fishtools-startswith $argv[2..-1]
|
|
case in
|
|
fishtools-in-list $argv[2..-1]
|
|
case enable
|
|
fishtools-enable $argv[2..-1]
|
|
case '*'
|
|
echo "unknown sub-command:" $argv
|
|
return 1
|
|
end
|
|
end
|
|
|
|
function bls
|
|
byobu list-session
|
|
end
|
|
|
|
function bat
|
|
byobu attach-session -t $argv[1]
|
|
end
|
|
|
|
function bnew
|
|
byobu new-session -t $argv[1]
|
|
end
|