Categorygithub.com/luke-goddard/taskninja
module
0.0.0-20241205014208-4aab7561cadd
Repository: https://github.com/luke-goddard/taskninja.git
Documentation: pkg.go.dev

# README

Go Report Card

TaskNinja

WIP TaskNinja is a command line task list utity program, inspired by taskwarrior

Screenshot

Install

From Git

git clone [email protected]:luke-goddard/taskninja.git
cd taskninja
make build
make install

TUI Shortcuts

TUI Shortcuts - Task Table

KeyAction
qQuit
aAdd a new task
nMark a task as NEXT
dComplete a task
eEdit a task
fFilter tasks
rRefresh the task list
sStart The current task
+Increase Priority
-Decrease Priority
HSet Priority to HIGH
MSet Priority to MED
LSet Priority to LOW
NSet Priority to NONE
Shift+DDelete a task
gGo to the top row
GGo to the bottom row
/Fuzzy search

Configuration

Once TaskNinja has been installed, the first time you run the program it will create a configuration file in your home directory. This file is located at ~/.config/taskninja/config.yaml. You can edit this file to change the default settings.

Sample Config

connection:
    # File (sqlite), memory (sqlite)
    mode: file

    # Path to the database
    path: "/home/taskninaja/Documents/taskninja.db"

    # Default = path + ".bk"
    backupPath: "/home/taskninaja/Documents/taskninja.db.bk"

log:
    # debug, info, warn, error
    level: debug

    # Pretty, Json
    mode: json

    # Path to the log file: Default = /tmp/taskninja.log
    path: "/home/taskninja/Documents/taskninja.log"

Local Development

Install Optional Development Tools

go install github.com/air-verse/air@latest
go install github.com/onsi/ginkgo/v2/ginkgo
sudo add-apt-repository -y ppa:linuxgndu/sqlitebrowser-testing
sudo apt-get update
sudo apt-get install sqlitebrowser

Run

bash make run

Run the unit tests

bash make tests

View the database

Note that pressing ctrl+r will refresh the database bash make browse

# Packages

Go does not support asserts in the standard library (womp womp) So this is just a wrapper around if condition then panic.
Used to send and recive events from multiple components in a pubsub manner.
No description provided by the author
Any configuration of taskninja belongs here.
No description provided by the author
No description provided by the author
No description provided by the author
Converts the query into a SQL statement.
No description provided by the author
No description provided by the author