From 7a53e76d85b6536f1298048a81405d1c707b005b Mon Sep 17 00:00:00 2001 From: Tony Tkacik Date: Wed, 21 Jun 2017 12:06:50 +0200 Subject: [PATCH] Added color support to taskie. Signed-off-by: Tony Tkacik --- bin/taskie | 1 + inc/taskie/backend.gogs.inc.sh | 17 ++++++++++-- inc/taskie/common.inc.sh | 48 ++++++++++++++++++++++++++++++++++ 3 files changed, 64 insertions(+), 2 deletions(-) create mode 100644 inc/taskie/common.inc.sh diff --git a/bin/taskie b/bin/taskie index 4abf8e5..a4233ac 100755 --- a/bin/taskie +++ b/bin/taskie @@ -7,6 +7,7 @@ nux.use nuxfs nux.use nux.repl +nux.use taskie/common nux.use taskie/backend.github nux.use taskie/backend.gogs diff --git a/inc/taskie/backend.gogs.inc.sh b/inc/taskie/backend.gogs.inc.sh index 21b1119..1597f28 100644 --- a/inc/taskie/backend.gogs.inc.sh +++ b/inc/taskie/backend.gogs.inc.sh @@ -1,11 +1,24 @@ nux.use taskie/backend.utils - +nux.use nux.json backend.gogs.list() { local api="$gogs_api_url/repos/$gogs_repository/issues?token=$gogs_api_token" local append_next="&token=$gogs_api_token" backend.githublike.get "$api" "$append_next" \ - | jq -r ".[] | [.number,.state,.title] | @sh" + | jq -r ".[] | [.number,.state,(\"#\" + .labels[].name) ,.title] | @sh" \ + | while read line + do + eval taskie.issue.display.short $line + done +} + +argz() { + int=0; + for arg in "$@" + do + let int=int+1 + echo $int $arg + done } backend.gogs.issue.exists() { diff --git a/inc/taskie/common.inc.sh b/inc/taskie/common.inc.sh new file mode 100644 index 0000000..247d82c --- /dev/null +++ b/inc/taskie/common.inc.sh @@ -0,0 +1,48 @@ + + +taskie.issue.display.short() { + local id="$1"; + local state="$2"; + shift; + shift; + echo -n "$id "; + taskie.state.colorized "$state" " "; + for arg in "$@" + do + local before=""; + local after=""; + if [[ "$arg" =~ "#" ]]; then + taskie.label.colorized "$arg" " " + else + echo -n "$arg" + fi + done + echo +} + +taskie.colorized() { + local color_path="$1" + local message="$2" + local afterMessage="$3" + local before="" + local after="" + color=$(nux.cfg.read colors.$color_path) + if [ -n "$color" ]; then + color_var="nc_$color" + if [ -n "${!color_var}" ]; then + before=${!color_var} + after=$nc_end + fi + fi + echo -n "${before}${message}${after}${afterMessage}" +} + +taskie.state.colorized() { + taskie.colorized state.$1 "$1" "$2" +} + +taskie.label.colorized() { + local label=${1#"#"} + taskie.colorized labels.$label "$1" "$2" + +}