summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.github/dependencies.yml2
-rw-r--r--plugins/wd/_wd.sh4
-rwxr-xr-xplugins/wd/wd.sh24
3 files changed, 27 insertions, 3 deletions
diff --git a/.github/dependencies.yml b/.github/dependencies.yml
index 46e7727b8..70f3d03da 100644
--- a/.github/dependencies.yml
+++ b/.github/dependencies.yml
@@ -30,7 +30,7 @@ dependencies:
plugins/wd:
repo: mfaerevaag/wd
branch: master
- version: tag:v0.9.3
+ version: tag:v0.10.0
precopy: |
set -e
rm -r test
diff --git a/plugins/wd/_wd.sh b/plugins/wd/_wd.sh
index 46b032f78..7c416086d 100644
--- a/plugins/wd/_wd.sh
+++ b/plugins/wd/_wd.sh
@@ -37,6 +37,7 @@ function _wd() {
'rm:Removes the given warp point'
'list:Outputs all stored warp points'
'ls:Show files from given warp point'
+ 'open:Open warp point in the default file explorer'
'path:Show path to given warp point'
'show:Outputs all warp points that point to the current directory or shows a specific target directory for a point'
'help:Show this extremely helpful text'
@@ -73,6 +74,9 @@ function _wd() {
ls)
_describe -t points "Warp points" warp_points && ret=0
;;
+ open)
+ _describe -t points "Warp points" warp_points && ret=0
+ ;;
path)
_describe -t points "Warp points" warp_points && ret=0
;;
diff --git a/plugins/wd/wd.sh b/plugins/wd/wd.sh
index f8b27828f..f7a22ff7d 100755
--- a/plugins/wd/wd.sh
+++ b/plugins/wd/wd.sh
@@ -8,7 +8,7 @@
# @github.com/mfaerevaag/wd
# version
-readonly WD_VERSION=0.9.3
+readonly WD_VERSION=0.10.0
# colors
readonly WD_BLUE="\033[96m"
@@ -86,6 +86,7 @@ Commands:
show Print warp points to current directory
list Print all stored warp points
ls <point> Show files from given warp point (ls)
+ open <point> Open the warp point in the default file explorer (open / xdg-open)
path <point> Show the path to given warp point (pwd)
clean Remove points warping to nonexistent directories (will prompt unless --force is used)
@@ -377,6 +378,21 @@ wd_ls()
ls "${dir/#\~/$HOME}"
}
+wd_open()
+{
+ wd_getdir "$1"
+ if command -v open >/dev/null 2>&1; then
+ # MacOS, Ubuntu (alias)
+ open "${dir/#\~/$HOME}"
+ elif command -v xdg-open >/dev/null 2>&1; then
+ # Most Linux desktops
+ xdg-open "${dir/#\~/$HOME}"
+ else
+ echo "No known file opener found (need 'open' or 'xdg-open')." >&2
+ exit 1
+ fi
+}
+
wd_path()
{
wd_getdir "$1"
@@ -521,7 +537,7 @@ do
done < "$wd_config_file"
# get opts
-args=$(getopt -o a:r:c:lhs -l add:,rm:,clean,list,ls:,path:,help,show -- $*)
+args=$(getopt -o a:r:c:lhs -l add:,rm:,clean,list,ls:,open:,path:,help,show -- $*)
# check if no arguments were given, and that version is not set
if [[ ($? -ne 0 || $#* -eq 0) && -z $wd_print_version ]]
@@ -571,6 +587,10 @@ else
wd_ls "$2"
break
;;
+ "-o"|"--open"|"open")
+ wd_open "$2"
+ break
+ ;;
"-p"|"--path"|"path")
wd_path "$2"
break