I forgot to create a readme for this. Thanks for the assist Claud.
This commit is contained in:
230
README.md
Normal file
230
README.md
Normal file
@@ -0,0 +1,230 @@
|
||||
# Git 'er Done
|
||||
|
||||
A simple, powerful command-line todo manager that stores tasks in SQLite databases. Perfect for developers and power users who want a lightweight task management solution that works entirely from the terminal.
|
||||
|
||||
## Features
|
||||
|
||||
- **Simple CLI interface** - Add, list, and manage tasks with intuitive commands
|
||||
- **Natural language date parsing** - Use dates like "tomorrow", "next friday", or "2025-08-20"
|
||||
- **Multiple task lists** - Organize tasks across different projects or contexts
|
||||
- **SQLite storage** - Reliable, portable database backend
|
||||
- **Task statistics** - Track completion rates and overdue items
|
||||
- **Flexible scheduling** - Reschedule tasks easily
|
||||
- **Data management** - Purge old completed tasks to keep lists clean
|
||||
|
||||
## Installation
|
||||
|
||||
1. Clone the repository:
|
||||
```bash
|
||||
git clone https://github.com/stormux/git-er-done.git
|
||||
cd git-er-done
|
||||
```
|
||||
|
||||
2. Make the script executable:
|
||||
```bash
|
||||
chmod +x ged
|
||||
```
|
||||
|
||||
3. Copy to a directory in your PATH (optional):
|
||||
```bash
|
||||
sudo cp ged /usr/local/bin/
|
||||
```
|
||||
|
||||
## Quick Start
|
||||
|
||||
```bash
|
||||
# Add a task
|
||||
ged "Fix the login bug"
|
||||
|
||||
# Add a task with a due date
|
||||
ged "Call dentist" tomorrow
|
||||
|
||||
# List all pending tasks
|
||||
ged
|
||||
|
||||
# Mark task 1 as complete
|
||||
ged -d 1
|
||||
|
||||
# Show help
|
||||
ged -h
|
||||
```
|
||||
|
||||
## Usage
|
||||
|
||||
### Basic Commands
|
||||
|
||||
| Command | Description |
|
||||
|---------|-------------|
|
||||
| `ged` | List all pending tasks |
|
||||
| `ged "task description"` | Add a new task |
|
||||
| `ged "task description" "due_date"` | Add a task with due date |
|
||||
| `ged -d <number>` | Mark task as done |
|
||||
| `ged -r <number> "new_date"` | Reschedule a task |
|
||||
| `ged -x <number>` | Permanently delete a task |
|
||||
|
||||
### Task List Management
|
||||
|
||||
| Command | Description |
|
||||
|---------|-------------|
|
||||
| `ged -l` | List pending tasks (same as no arguments) |
|
||||
| `ged -a` | List all tasks with status |
|
||||
| `ged -c` | List completed tasks only |
|
||||
| `ged -s` | Show task statistics |
|
||||
| `ged -L` | List all available task files |
|
||||
|
||||
### Multiple Task Lists
|
||||
|
||||
Use the `-f` flag to work with different task lists:
|
||||
|
||||
```bash
|
||||
# Work tasks
|
||||
ged -f work "Review pull requests"
|
||||
ged -f work -l
|
||||
|
||||
# Personal tasks
|
||||
ged -f personal "Buy groceries"
|
||||
ged -f personal -s
|
||||
|
||||
# Project-specific tasks
|
||||
ged -f project-alpha "Deploy to staging"
|
||||
```
|
||||
|
||||
### Data Management
|
||||
|
||||
| Command | Description |
|
||||
|---------|-------------|
|
||||
| `ged -p` | Remove completed tasks older than 30 days |
|
||||
| `ged -p 7` | Remove completed tasks older than 7 days |
|
||||
|
||||
## Date Formats
|
||||
|
||||
Git 'er Done accepts various date formats:
|
||||
|
||||
- **ISO format**: `2025-08-20`
|
||||
- **Natural language**: `tomorrow`, `next monday`, `next week`
|
||||
- **Relative dates**: Any format accepted by the `date` command
|
||||
|
||||
Examples:
|
||||
```bash
|
||||
ged "Submit report" "2025-08-25"
|
||||
ged "Team meeting" "next tuesday"
|
||||
ged "Doctor appointment" "tomorrow"
|
||||
```
|
||||
|
||||
## Examples
|
||||
|
||||
### Basic Usage
|
||||
```bash
|
||||
# Add some tasks
|
||||
ged "Fix bug in authentication module"
|
||||
ged "Write unit tests" "friday"
|
||||
ged "Deploy to production" "2025-08-30"
|
||||
|
||||
# List tasks
|
||||
ged
|
||||
# Output:
|
||||
# Git 'er Done task list
|
||||
# 1. Fix bug in authentication module
|
||||
# 2. Write unit tests Due by Friday, August 22, 2025
|
||||
# 3. Deploy to production Due by Saturday, August 30, 2025
|
||||
|
||||
# Mark first task complete
|
||||
ged -d 1
|
||||
# Output: Task 1 "Fix bug in authentication module" marked as done.
|
||||
|
||||
# Reschedule second task
|
||||
ged -r 2 "next monday"
|
||||
# Output: Task 2 "Write unit tests" rescheduled to Monday, August 25, 2025.
|
||||
```
|
||||
|
||||
### Multiple Projects
|
||||
```bash
|
||||
# Work tasks
|
||||
ged -f work "Code review for PR #123"
|
||||
ged -f work "Update documentation"
|
||||
|
||||
# Side project
|
||||
ged -f sideproject "Implement user authentication"
|
||||
ged -f sideproject "Set up CI/CD pipeline"
|
||||
|
||||
# Personal tasks
|
||||
ged -f personal "Buy birthday gift"
|
||||
ged -f personal "Schedule dentist appointment"
|
||||
|
||||
# List all task files
|
||||
ged -L
|
||||
# Output:
|
||||
# Available task files:
|
||||
# ====================
|
||||
# personal 2 pending, 0 done, 2 total (<1 KB)
|
||||
# sideproject 2 pending, 0 done, 2 total (<1 KB)
|
||||
# tasks 0 pending, 1 done, 1 total (<1 KB) (default)
|
||||
# work 2 pending, 0 done, 2 total (<1 KB)
|
||||
```
|
||||
|
||||
### Task Statistics
|
||||
```bash
|
||||
ged -s
|
||||
# Output:
|
||||
# Task Statistics:
|
||||
# ==================
|
||||
# Total tasks: 15
|
||||
# Pending: 8
|
||||
# Completed: 7
|
||||
# Completion rate: 46.7%
|
||||
# ⚠️ Overdue tasks: 2
|
||||
# 📅 Due today: 1
|
||||
```
|
||||
|
||||
## Data Storage
|
||||
|
||||
Tasks are stored in SQLite databases in your system's data directory:
|
||||
|
||||
- **Linux**: `$HOME/.local/share/git-er-done/`
|
||||
- **Default database**: `tasks.db`
|
||||
- **Custom databases**: `<filename>.db` (when using `-f` flag)
|
||||
|
||||
Each database contains a table with the following structure:
|
||||
- Task ID (auto-incrementing)
|
||||
- Description
|
||||
- Due date (optional)
|
||||
- Status (pending/completed)
|
||||
- Creation timestamp
|
||||
- Completion timestamp
|
||||
- Project tag
|
||||
|
||||
## Command Reference
|
||||
|
||||
### Flags
|
||||
|
||||
| Flag | Long Form | Arguments | Description |
|
||||
|------|-----------|-----------|-------------|
|
||||
| `-a` | `--all` | None | List all tasks with status |
|
||||
| `-c` | `--completed` | None | List completed tasks only |
|
||||
| `-d` | | `<task_number>` | Mark task as done |
|
||||
| `-f` | | `<file_name>` | Use specified database file |
|
||||
| `-h` | `--help` | None | Show help screen |
|
||||
| `-l` | | None | List pending tasks |
|
||||
| `-L` | `--list` | None | List available task files |
|
||||
| `-p` | `--purge` | `[days]` | Remove old completed tasks (default: 30 days) |
|
||||
| `-r` | | `<task_number> <new_date>` | Reschedule task |
|
||||
| `-s` | `--stats` | None | Show task statistics |
|
||||
| `-x` | `--remove` | `<task_number>` | Permanently delete task |
|
||||
|
||||
## Requirements
|
||||
|
||||
- **Bash** 4.0 or later
|
||||
- **SQLite3** command-line tool
|
||||
- **GNU date** command (for date parsing)
|
||||
|
||||
## License
|
||||
|
||||
MIT License - see [LICENSE](LICENSE) file for details.
|
||||
|
||||
## Contributing
|
||||
|
||||
Contributions are welcome! Please feel free to submit pull requests or open issues for bugs and feature requests.
|
||||
|
||||
## Author
|
||||
|
||||
Created by Stormux
|
Reference in New Issue
Block a user