Initial support for context and focus (see Issue #218).

This commit is contained in:
Ben Armstrong 2013-08-21 18:05:08 -03:00 committed by Paul Beckingham
parent 235fb9f054
commit ac811c6930
4 changed files with 64 additions and 0 deletions

View file

@ -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
View 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
View file

@ -0,0 +1 @@
context

View 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}/"
}