|
@@ -8,7 +8,7 @@
|
|
# @github.com/mfaerevaag/wd
|
|
# @github.com/mfaerevaag/wd
|
|
|
|
|
|
# version
|
|
# version
|
|
-readonly WD_VERSION=0.4
|
|
|
|
|
|
+readonly WD_VERSION=0.4.2
|
|
|
|
|
|
# colors
|
|
# colors
|
|
readonly WD_BLUE="\033[96m"
|
|
readonly WD_BLUE="\033[96m"
|
|
@@ -143,7 +143,7 @@ wd_warp()
|
|
fi
|
|
fi
|
|
elif [[ ${points[$point]} != "" ]]
|
|
elif [[ ${points[$point]} != "" ]]
|
|
then
|
|
then
|
|
- cd ${points[$point]}
|
|
|
|
|
|
+ cd ${points[$point]/#\~/$HOME}
|
|
else
|
|
else
|
|
wd_exit_fail "Unknown warp point '${point}'"
|
|
wd_exit_fail "Unknown warp point '${point}'"
|
|
fi
|
|
fi
|
|
@@ -169,7 +169,7 @@ wd_add()
|
|
elif [[ ${points[$2]} == "" ]] || $force
|
|
elif [[ ${points[$2]} == "" ]] || $force
|
|
then
|
|
then
|
|
wd_remove $point > /dev/null
|
|
wd_remove $point > /dev/null
|
|
- printf "%q:%s\n" "${point}" "${PWD}" >> $WD_CONFIG
|
|
|
|
|
|
+ printf "%q:%s\n" "${point}" "${PWD/#$HOME/~}" >> $WD_CONFIG
|
|
|
|
|
|
wd_print_msg $WD_GREEN "Warp point added"
|
|
wd_print_msg $WD_GREEN "Warp point added"
|
|
|
|
|
|
@@ -203,6 +203,21 @@ wd_list_all()
|
|
{
|
|
{
|
|
wd_print_msg $WD_BLUE "All warp points:"
|
|
wd_print_msg $WD_BLUE "All warp points:"
|
|
|
|
|
|
|
|
+ entries=$(sed "s:${HOME}:~:g" $WD_CONFIG)
|
|
|
|
+
|
|
|
|
+ max_warp_point_length=0
|
|
|
|
+ while IFS= read -r line
|
|
|
|
+ do
|
|
|
|
+ arr=(${(s,:,)line})
|
|
|
|
+ key=${arr[1]}
|
|
|
|
+
|
|
|
|
+ length=${#key}
|
|
|
|
+ if [[ length -gt max_warp_point_length ]]
|
|
|
|
+ then
|
|
|
|
+ max_warp_point_length=$length
|
|
|
|
+ fi
|
|
|
|
+ done <<< $entries
|
|
|
|
+
|
|
while IFS= read -r line
|
|
while IFS= read -r line
|
|
do
|
|
do
|
|
if [[ $line != "" ]]
|
|
if [[ $line != "" ]]
|
|
@@ -213,16 +228,16 @@ wd_list_all()
|
|
|
|
|
|
if [[ -z $wd_quiet_mode ]]
|
|
if [[ -z $wd_quiet_mode ]]
|
|
then
|
|
then
|
|
- printf "%20s -> %s\n" $key $val
|
|
|
|
|
|
+ printf "%${max_warp_point_length}s -> %s\n" $key $val
|
|
fi
|
|
fi
|
|
fi
|
|
fi
|
|
- done <<< $(sed "s:${HOME}:~:g" $WD_CONFIG)
|
|
|
|
|
|
+ done <<< $entries
|
|
}
|
|
}
|
|
|
|
|
|
wd_ls()
|
|
wd_ls()
|
|
{
|
|
{
|
|
wd_getdir $1
|
|
wd_getdir $1
|
|
- ls $dir
|
|
|
|
|
|
+ ls ${dir/#\~/$HOME}
|
|
}
|
|
}
|
|
|
|
|
|
wd_path()
|
|
wd_path()
|
|
@@ -248,6 +263,7 @@ wd_show()
|
|
local wd_matches
|
|
local wd_matches
|
|
wd_matches=()
|
|
wd_matches=()
|
|
# do a reverse lookup to check whether PWD is in $points
|
|
# do a reverse lookup to check whether PWD is in $points
|
|
|
|
+ PWD="${PWD/$HOME/~}"
|
|
if [[ ${points[(r)$PWD]} == $PWD ]]
|
|
if [[ ${points[(r)$PWD]} == $PWD ]]
|
|
then
|
|
then
|
|
for name in ${(k)points}
|
|
for name in ${(k)points}
|