mirror of
https://github.com/ohmyzsh/ohmyzsh.git
synced 2026-01-30 02:44:42 +01:00
feat(tasko): new tasko plugin
This commit is contained in:
parent
9d529c41cc
commit
b2f437b21a
2 changed files with 49 additions and 0 deletions
11
plugins/tasko/README.md
Normal file
11
plugins/tasko/README.md
Normal file
|
|
@ -0,0 +1,11 @@
|
|||
# TaskWarrior Plugin
|
||||
|
||||
Open annotation content with native open commands (xdg-open or open)
|
||||
|
||||
To use it add `tasko` to the plugins array in your zshrc file:
|
||||
|
||||
```zsh
|
||||
plugins=(... tasko)
|
||||
```
|
||||
|
||||
**Note:** you have to [install taskwarrior](https://github.com/GothenburgBitFactory/taskwarrior) first.
|
||||
38
plugins/tasko/tasko.plugin.zsh
Normal file
38
plugins/tasko/tasko.plugin.zsh
Normal file
|
|
@ -0,0 +1,38 @@
|
|||
function _tasko_print_help() {
|
||||
echo
|
||||
echo "Usage: tasko {TASK} {ROW}"
|
||||
echo
|
||||
}
|
||||
|
||||
function tasko () {
|
||||
if [[ $# -ne 2 ]]; then
|
||||
echo 'Error: Too many/few arguments, expecting two.' >&2
|
||||
tasko_print_help
|
||||
return 1
|
||||
fi
|
||||
|
||||
local annotation_desc=$(task _get $1.annotations.$2.description 2>/dev/null)
|
||||
if [[ $? -ne 0 ]]; then
|
||||
echo "Error: Task or row not found." >&2
|
||||
return 1
|
||||
fi
|
||||
|
||||
if [[ $annotation_desc == "" ]]; then
|
||||
echo "Error: No text found" >&2
|
||||
return 1
|
||||
fi
|
||||
|
||||
echo "Open $annotation_desc? [y/n]"
|
||||
read answer
|
||||
if [[ $answer == y* ]] || [[ $answer == Y* ]]; then
|
||||
if [[ $(uname -s) == "Linux" ]]; then
|
||||
xdg-open $annotation_desc
|
||||
return 0
|
||||
else
|
||||
open $annotation_desc
|
||||
return 0
|
||||
fi
|
||||
return 1
|
||||
fi
|
||||
return 0
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue