Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/martindisch/tasuke
A small task/todo application for the terminal
https://github.com/martindisch/tasuke
cli task terminal todo
Last synced: 18 days ago
JSON representation
A small task/todo application for the terminal
- Host: GitHub
- URL: https://github.com/martindisch/tasuke
- Owner: martindisch
- License: mit
- Created: 2018-08-17T15:18:15.000Z (over 6 years ago)
- Default Branch: master
- Last Pushed: 2019-02-06T13:36:51.000Z (almost 6 years ago)
- Last Synced: 2024-11-14T07:46:51.849Z (3 months ago)
- Topics: cli, task, terminal, todo
- Language: C
- Homepage:
- Size: 138 KB
- Stars: 0
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# tasuke
## Description
A simple task/todo application for the terminal.
A *no fuss, no muss* replacement for your trusty todo.txt, giving you a more
convenient way to access your tasks without all the cruft of more complex
todo applications that make you spend time overmanaging your todo list.
It supports multiple task lists and lets you manually order tasks, but
that's about it.
No history, no priorities, no dates and no reminders.
Your task lists are stored as plain text in a location of your choice.## Usage
Most commands follow the pattern
```
t [command] [list selection] [content...]
```
For example, to add two new tasks to a list called *school*, you would do
```
t -a -n school "Study for exam" "Prepare presentation"
```
To be as portable as possible, tasuke uses the POSIX utility argument syntax.
This lets you combine options, subject to certain limitations of course.
```
t -an school "Study for exam" "Prepare presentation"
```If you don't select a specific list, your command will be run against the
default list, which is called *todo*.Every list has a corresponding plain text file `listname.txt` which is stored
in the `.tasuke` directory of your user home.
If you want tasuke to keep these files somewhere else, pass this path along
with the `-s` option.
Since you'll most likely be assigning an alias to the tasuke executable anyway,
you can make the alias use this argument by default.
If you want to see a list after modification, use the `-v` flag.**List tasks**
```
t # List default list
t mylist school # List specific lists
```**Add task(s)** by appending/prepending to list
```
t -a "My first task" "Second task" # Add to default list
t -a -n mylist "First task" "Second task" # Add to specific list
t -p "My first task" "Second task" # Prepend to default list
t -p -n mylist "First task" "Second task" # Prepend to specific list
```**Insert task** by inserting at given position, shifting other items downwards
```
t -i 3 "My task" # Insert into default list
t -i -n mylist 3 "My task" # Insert into specific list
```**Complete task(s)**
```
t -d 3 10 7 # Complete from default list
t -d -n mylist 3 10 7 # Complete from specific list
```
**Move task** from one position to another, by bubbling it up or down
```
t -m 3 5 # Move inside default list
t -m -n mylist 3 5 # Move inside specific list
```**Delete list(s)**
```
t -r # Delete default task list
t -r mylist school # Delete specific lists
```**Show lists**
```
t -l # Show all list names
```**Set task list directory**
```
t -a "New task" -s /path/to/dir # Add to default list in directory
```**Show list after modification**
```
t -i -v 5 "Another task" # Insert into default list, showing
# it after the modification
```## Installation
Since tasuke uses only POSIX system interfaces, you should be able to compile
it on almost every platform.
Just run `make` and you're good to go.
You'll probably want to add the executable to your `PATH` variable, or better
yet, create an alias in your `.bashrc` or equivalent.
An alias is very convenient if you want tasuke to store your lists in some
other place than the default `.tasuke` directory, since you can add the `-s`
option to the command. For example, you could use
```
alias t='/opt/tasuke/tasuke -s /home/user/Dropbox/tasuke'
```## Language, standards & platforms
By default, tasuke is compiled by GCC according to strict ISO C11, with some
POSIX functions.
C11 is used because it was the newest standard at the time of development.
However, tasuke doesn't use any features that are not already in C99, so it's
possible to compile it with that as well.The project doesn't conform to ANSI C89/ISO C90, because there are several
annoying restrictions (no mixing of declarations and code, short minimum
supported string length by compiler, no variable declarations in for loop
statements, etc.) and there are no tangible benefits of doing that for
userspace programs.Some POSIX functions that are not part of standard C are used (`getopt`,
`strcasecmp`, etc.), and feature test macros are defined at the top of source
files to communicate the required POSIX version to the standard library.
If your glibc is older than 2.12, you may need to use different macros, because
some functions were not part of POSIX before that.## License
[MIT License](LICENSE)