plugin/base: rewrite `t()` function to use `todo.sh`

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.
pull/2005/head
John D Pell 2021-12-30 22:52:16 -08:00
parent 02b57a83ef
commit d6bcedfa96
2 changed files with 21 additions and 16 deletions

View File

@ -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() {

View File

@ -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'