mirror of
https://github.com/GothenburgBitFactory/taskwarrior.git
synced 2025-06-26 10:54:26 +02:00
Initial support for context and focus (see Issue #218).
This commit is contained in:
parent
235fb9f054
commit
ac811c6930
4 changed files with 64 additions and 0 deletions
1
AUTHORS
1
AUTHORS
|
@ -85,6 +85,7 @@ The following submitted code, packages or analysis, and deserve special thanks:
|
||||||
Jakub Wilk
|
Jakub Wilk
|
||||||
Russell Steicke
|
Russell Steicke
|
||||||
YBSAR
|
YBSAR
|
||||||
|
Ben Armstrong
|
||||||
|
|
||||||
Thanks to the following, who submitted detailed bug reports and excellent
|
Thanks to the following, who submitted detailed bug reports and excellent
|
||||||
suggestions:
|
suggestions:
|
||||||
|
|
36
scripts/bash/context
Executable file
36
scripts/bash/context
Executable file
|
@ -0,0 +1,36 @@
|
||||||
|
#!/bin/bash
|
||||||
|
# - These filters not modified, as their purpose is for special review
|
||||||
|
# not dependent on context or focus:
|
||||||
|
# - report.all.filter
|
||||||
|
# - report.completed.filter status:completed
|
||||||
|
# - What is this -FILTER about in my filters?
|
||||||
|
# - In each filter, we negate a non-existent virtual tag -FILTER that
|
||||||
|
# doesn't change what the filter matches but does add a recognizable
|
||||||
|
# marker. This is used later to substitute the filter with a new one when
|
||||||
|
# it changes.
|
||||||
|
# - CAUTION: do not add any additional (i.e. non-context, non-focus) material
|
||||||
|
# after -FILTER in the report filter variables or else it will be lost next
|
||||||
|
# time the context or focus is changed.
|
||||||
|
script_path=$(dirname ${0})
|
||||||
|
. "${script_path}/task_functions.sh"
|
||||||
|
|
||||||
|
filter_type=$(basename ${0})
|
||||||
|
task_config "${filter_type}.current" "${@}"
|
||||||
|
context=$(task_get context.current)
|
||||||
|
focus=$(task_get focus.current)
|
||||||
|
colored_context="$(task_color 'white on red' ${context})"
|
||||||
|
colored_focus="$(task_color 'white on blue' ${focus})"
|
||||||
|
filter="${context} ${focus}"
|
||||||
|
|
||||||
|
filter_vars=$(task_vars filter)
|
||||||
|
filter_vars=${filter_vars/report.all.filter/}
|
||||||
|
filter_vars=${filter_vars/report.completed.filter/}
|
||||||
|
for var in ${filter_vars}; do
|
||||||
|
old_value=$(task_get ${var})
|
||||||
|
old_value=${old_value/%-FILTER*/}
|
||||||
|
task_config ${var} ${old_value} -FILTER ${filter}
|
||||||
|
done
|
||||||
|
|
||||||
|
task_config "shell.prompt" "${colored_context}:${colored_focus}>"
|
||||||
|
|
||||||
|
echo "Filter applied to reports and add: ${filter}"
|
1
scripts/bash/focus
Symbolic link
1
scripts/bash/focus
Symbolic link
|
@ -0,0 +1 @@
|
||||||
|
context
|
26
scripts/bash/task_functions.sh
Normal file
26
scripts/bash/task_functions.sh
Normal file
|
@ -0,0 +1,26 @@
|
||||||
|
CONFIRM_PROMPT='are you sure'
|
||||||
|
task_config ()
|
||||||
|
{
|
||||||
|
var="${1}"
|
||||||
|
shift
|
||||||
|
value="${@}"
|
||||||
|
echo y | task config $var "$value" | grep -iv "$CONFIRM_PROMPT"
|
||||||
|
}
|
||||||
|
task_vars ()
|
||||||
|
{
|
||||||
|
task _show | grep "^.*${1}.*=" | cut -d'=' -f1
|
||||||
|
}
|
||||||
|
task_get ()
|
||||||
|
{
|
||||||
|
task _show | grep "^${1}=" | cut -d'=' -f2
|
||||||
|
}
|
||||||
|
task_color ()
|
||||||
|
{
|
||||||
|
color="${1}"
|
||||||
|
shift
|
||||||
|
text="${@}"
|
||||||
|
task rc.verbose=nothing rc._forcecolor=yes color ${color} | grep 'task color' | \
|
||||||
|
tail -n 1 | sed -e 's/^ //' -e "s/task color ${color}/${text}/"
|
||||||
|
}
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue