Giter Site home page Giter Site logo

tasktogo's Introduction

tasktogo

tasktogo is a command-line todo list manager designed for both interactive and script-based use. It has support for due dates and varying priorities of tasks, and is capable of ranking tasks by urgency, (which is calculated considering both the nearness of due date and priority). For those who like rainbows, it can also colorize output.

Primarily, it is designed for single users, rather than teams. Tasks are represented in a simple JSON format, and can be accessed either directly (as a text file) or via tasktogo's interfaces, which are suitable for scripting.

It is written in pure Go.

Demo screenshot

Install

tasktogo is not yet packaged for any operating system or distribution, but should be capable of functioning on any UNIX-alike, and maybe even Windows.

If you have Go installed already, then you can do either of the following. If not, you will need to install it first.

For a full installation with manpage on UNIX-alikes:

git clone https://github.com/SashaCrofter/tasktogo.git
cd tasktogo
go get
make
sudo make install

For a source and binary-only install on any system with Go:

go install github.com/SashaCrofter/tasktogo.git

Options

Changing install location

By default, the included Makefile installs tasktogo and its resources (such as the manpage) to /usr/local, but this can be changed by prepending prefix=/usr (for example) to the make install command. In this case, then, the executable will go to /usr/bin and so on.

It is worth nothing that one should not invoke with prefix= with no argument, because then resources will not go to the correct directory.

Using a different compiler

The default compile command used is go build, with some flags used to set the version automatically. If one wants to use a different compiler or set of flags, one can prepend GOCOMPILER=gccgo (for example) to the make command.

Note that in the compiled binary, the version number will only reflect the lated tagged commit, rather than a verbose descriptor including the current commit ID.

Instructions

See the man page (if installed) via man tasktogo, or otherwise, tasktogo -h will provide some help.

Reporting bugs

tasktogo is hopelessly early-stage software, made primarily for its author's use. Bug reports and feature requests are greatly appreciated, and should both be made to the issues page, or to the author, Alexander Bauer [email protected].

When filing a bug report, please include the first line of output of tasktogo help, containing the version number.

License

tasktogo copyright © 2013 Alexander Bauer

License GPLv3+: GNU GPL version 3 or later http://gnu.org/licenses/gpl.html.
This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law.

tasktogo's People

Contributors

alexander-bauer avatar

Stargazers

Charles E. Lehner avatar  avatar Luke Evers avatar

Watchers

James Cloos avatar  avatar

tasktogo's Issues

tasktogo needs the configuration file to already be there or it doesn't save anything.

If there is no ~/.tasktogo file, you get this error:

E1022 11:56:00.639680 04222 tasktogo.go:100] Could not read task list: open /home/luke/.tasktogo: no such file or directory
Could not read task list: open /home/luke/.tasktogo: no such file or directory

You can run echo '[]' > ~/.tasktogo and it will work properly, but you should not have to do that.

Events with due dates in the past are always sorted first

This is because their nice values are negative, and therefore less, even, than tasks of priority 0. What exactly to do in this case is unclear, because items with past due dates could be either extremely important (extended assignment?), not at all (forgot to mark the task done), or moderate (flexible due date).

As a compromise, they should perhaps get some boost to up them in the list, but not enough to force them to the absolute top.

Mark tasks done

This requires being able to refer to the tasks in some concrete way. Perhaps a number, or just a string match?

Make Task a Stringer

Strictly speaking, the Task type should probably implement the Stringer interface, using the format already in command.go.

fmt.Sprintf(
    "%s - %s (%d)\n\t%s\n",
    task.Name, task.DueBy.Format("Monday, Jan 02, 15:04"),
    task.Priority, task.Description)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.