Metadata-Version: 2.1
Name: dbs-todo
Version: 0.5.0
Summary: Dain-Bread Simple TODO list
Home-page: https://github.com/ahs3/dbs
Author: Al Stone
Author-email: ahs3@ahs3.net
License: UNKNOWN
Project-URL: Bug Tracker, https://github.com/ahs3/dbs/issues
Platform: UNKNOWN
Classifier: Programming Language :: Python :: 3
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Requires-Python: >=3.7
Description-Content-Type: text/plain
License-File: LICENSE

dbs == dain-bread simple
========================
TODO list for minimalists

# SPDX-License-Identifier: GPL-2.0-only
# Copyright (c) 2021, Al Stone <ahs3@ahs3.net>

A "task" consists of a file that looks like this:

    Task: get something done
    State: open
    Project: stuff
    Priority: h
    Note: this is a note
    Note: this is another note

(sans indenting, of course).  Each key:value is exactly one line (everything
up until the newline).  There are a few limits:

   -- State is one of 'open', 'active', 'done' or 'deleted' [0]
   -- Priority is one of 'h', 'm', 'l'

It's all pretty self-explanatory.  I've tried to keep this as simple as
possible, but Python wants things packaged properly, and I wanted to have
both a CLI version (dbs) and an ncurses version (dbsui) using the same code
for managing tasks.  So, yeah, needed to create a module to package and
distribute with.

Installation is simple: clone the source tree, cd to the clone, then:

   $ sudo cp dbs /usr/local/bin

Or:

   $ cp dbs ~/bin

That's it [2].  Python3 is the only requirement.  Most distros will have 
the right Python modules by default.  I use this on Fedora and Debian, so
your mileage may vary.

To add a task like the one above:

   $ dbs add 0001 stuff h "get something done"

That's it.  It's automatically created as an open task.  You can find all
open tasks with:

   $ dbs lo

('lo' == 'list open' -- extra credit if you can figure out the command for
'list active' and 'list done').

If you do this:

   $ dbs

You'll get a list of all current commands and any parameters they might need.

A directory called (cleverly) ~/.dbs will be created.  There is a dbsrc config
file in there that's not really used yet.  There is a directory for each task
state containing one file for each task in that state.  Task names must be
unique across all states since we move the files around in the various ~/.dbs
directories [1].


Notes:
[0] Nothing ever gets actually deleted unless you remove the files.
[1] In order to sync across machines, I create ~/.dbs and then use
    syncthing to sync that directory across machines.
[2] You could rename the script if you like; I don't think there's anything
    in the script that would preclude it.


