From d6bcedfa96e397246d0aa9e50823864021562890 Mon Sep 17 00:00:00 2001 From: John D Pell Date: Thu, 30 Dec 2021 22:52:16 -0800 Subject: [PATCH] plugin/base: rewrite `t()` function to use `todo.sh` MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Move the test for whether `plugin/todo` is enabled inside the function, and remove the alias from there. Alsö, respect `$XDG_STATE_HOME` and move the old `~/.t` file if it exists. --- plugins/available/base.plugin.bash | 35 ++++++++++++++++++------------ plugins/available/todo.plugin.bash | 2 -- 2 files changed, 21 insertions(+), 16 deletions(-) diff --git a/plugins/available/base.plugin.bash b/plugins/available/base.plugin.bash index 1efe4cca..1a905163 100644 --- a/plugins/available/base.plugin.bash +++ b/plugins/available/base.plugin.bash @@ -67,7 +67,7 @@ function passgen() { # Create alias pass to passgen when pass isn't installed or # BASH_IT_LEGACY_PASS is true. -if ! _command_exists pass || [[ "${BASH_IT_LEGACY_PASS:-}" = true ]]; then +if ! _command_exists pass || [[ "${BASH_IT_LEGACY_PASS:-}" == true ]]; then alias pass=passgen fi @@ -120,19 +120,26 @@ function usage() { esac } -if ! _bash-it-component-item-is-enabled plugin todo; then - # if user has installed todo plugin, skip this... - function t() { - about 'one thing todo' - param 'if not set, display todo item' - param '1: todo text' - if [[ "$*" == "" ]]; then - cat ~/.t - else - echo "$*" > ~/.t - fi - } -fi +function t() { + about 'todo.sh if available, otherwise one thing todo' + param 'if not set, display todo item' + param '1: todo text' + + local todotxt="${XDG_STATE_HOME:-~/.local/state}/bash_it/todo.txt" + + if _bash-it-component-item-is-enabled plugin todo; then + todo.sh "$@" + return + elif [[ ! -f "${todotxt}" && -f ~/.t ]]; then + mv -vn ~/.t "${todotxt}" # Verbose, so the user knows. Don't overwrite, just in case. + fi + + if [[ "$#" -eq 0 ]]; then + cat "${todotxt}" + else + echo "$@" >| "${todotxt}" + fi +} if _command_exists mkisofs; then function mkiso() { diff --git a/plugins/available/todo.plugin.bash b/plugins/available/todo.plugin.bash index be4806c2..6b495274 100644 --- a/plugins/available/todo.plugin.bash +++ b/plugins/available/todo.plugin.bash @@ -4,5 +4,3 @@ about-plugin 'Todo.txt integration' # you may override any of the exported variables below in your .bash_profile : "${TODOTXT_DEFAULT_ACTION:=ls}" export TODOTXT_DEFAULT_ACTION - -alias t='todo.sh'