diff --git a/Cargo.lock b/Cargo.lock index 684bbde..ce6a24c 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -156,6 +156,16 @@ version = "1.70.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7943c866cc5cd64cbc25b2e01621d07fa8eb2a1a23160ee81ce38704e97b8ecf" +[[package]] +name = "ldr" +version = "1.0.0" +dependencies = [ + "clap", + "tempfile", + "termion", + "xdg", +] + [[package]] name = "libc" version = "0.2.174" @@ -197,16 +207,6 @@ version = "1.70.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a4895175b425cb1f87721b59f0f286c2092bd4af812243672510e1ac53e2e0ad" -[[package]] -name = "parts" -version = "0.1.0" -dependencies = [ - "clap", - "tempfile", - "termion", - "xdg", -] - [[package]] name = "proc-macro2" version = "1.0.95" diff --git a/Cargo.toml b/Cargo.toml index 0746d1e..5bc6a57 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,10 +1,14 @@ [package] -name = "parts" -version = "0.1.0" +name = "ldr" +version = "1.0.0" edition = "2021" -description = "Prepend and Review ToDo System" +description = "Log, Do, Review - A simple todo system" license = "MIT" authors = ["Stephen Waits "] +repository = "https://github.com/swaits/ldr" +homepage = "https://github.com/swaits/ldr" +keywords = ["todo", "cli", "productivity"] +categories = ["command-line-utilities"] [dependencies] clap = { version = "4.5.41", features = ["derive"] } diff --git a/README.md b/README.md index e1fdc7a..bee758f 100644 --- a/README.md +++ b/README.md @@ -1,13 +1,31 @@ -# PARTS - Prepend and Review ToDo System +# LDR - Log, Do, Review -A simple command-line productivity system that lets you add items to the top of your list and review them interactively. +A simple command-line productivity system that lets you add items to the top of +your list and review them interactively. ## Inspiration -This tool was inspired by Andrej Karpathy's blog post ["The append-and-review note"](https://karpathy.bearblog.dev/the-append-and-review-note/), which describes a simple but effective productivity system using a single text file where you append new items to the top and periodically review from the top down. +This tool was inspired by Andrej Karpathy's blog post ["The append-and-review +note"](https://karpathy.bearblog.dev/the-append-and-review-note/), which +describes a simple but effective productivity system using a single text file +where you append new items to the top and periodically review from the top down. ## Installation +### From crates.io + +```bash +cargo install ldr +``` + +### Using mise + +```bash +mise use -g cargo:ldr +``` + +### From source + 1. Clone this repository 2. Build with Cargo: @@ -18,17 +36,17 @@ This tool was inspired by Andrej Karpathy's blog post ["The append-and-review no 3. Copy the binary to your PATH: ```bash - cp target/release/parts ~/.local/bin/ + cp target/release/ldr ~/.local/bin/ ``` ## Usage -- `parts add "Your todo item"` - Add a new item to the top -- `parts ls` - List your items -- `parts scan` - Review items interactively -- `parts do 1 2 3` - Archive completed items by number -- `parts up 1 2 3` - Prioritize items by moving them to the top -- `parts edit` - Edit your todo list in $EDITOR +- `ldr add "Your todo item"` - Add a new item to the top +- `ldr ls` - List your items +- `ldr scan` - Review items interactively +- `ldr do 1 2 3` - Archive completed items by number +- `ldr up 1 2 3` - Prioritize items by moving them to the top +- `ldr edit` - Edit your todo list in $EDITOR ## License diff --git a/src/commands.rs b/src/commands.rs index 975765f..1fa79d7 100644 --- a/src/commands.rs +++ b/src/commands.rs @@ -1,4 +1,4 @@ -//! Command implementations for the parts todo system. +//! Command implementations for the ldr todo system. //! //! This module contains all the core functionality for managing todo items, //! including adding, listing, prioritizing, archiving, and interactive review. @@ -301,7 +301,7 @@ pub fn review_note(note_path: &Path, archive_path: &Path) -> io::Result<()> { print!("\x1B[2J\x1B[H"); println!( - "{}=== PARTS Review Mode ==={}", + "{}=== LDR Review Mode ==={}", color::Fg(color::Cyan), color::Fg(color::Reset) ); diff --git a/src/main.rs b/src/main.rs index 04e0540..7bbd154 100644 --- a/src/main.rs +++ b/src/main.rs @@ -1,4 +1,4 @@ -//! Parts - A Prepend and Review ToDo System +//! LDR - Log, Do, Review //! //! A command-line todo application that emphasizes adding items to the top //! and provides an interactive review mode for processing items. @@ -14,17 +14,17 @@ mod input; #[cfg(test)] mod tests; -/// Command-line interface structure for the parts todo system +/// Command-line interface structure for the ldr todo system #[derive(Parser)] -#[command(name = "parts")] -#[command(about = "Prepend and Review ToDo System", long_about = None)] +#[command(name = "ldr")] +#[command(about = "Log, Do, Review - A simple todo system", long_about = None)] #[command(version)] struct Cli { #[command(subcommand)] command: Commands, } -/// Available subcommands for the parts todo system +/// Available subcommands for the ldr todo system #[derive(Subcommand)] enum Commands { /// Add a new item at the top @@ -47,19 +47,19 @@ enum Commands { /// Raise the priority of items (move toward top) #[command(alias = "prioritize")] Up { - /// Item numbers to prioritize (from "parts ls") + /// Item numbers to prioritize (from "ldr ls") numbers: Vec, }, /// Archive completed items #[command(aliases = ["done", "finish", "check"])] Do { - /// Item numbers to archive (from "parts ls") + /// Item numbers to archive (from "ldr ls") numbers: Vec, }, /// Remove items without archiving #[command(aliases = ["remove", "delete", "destroy", "forget"])] Rm { - /// Item numbers to remove (from "parts ls") + /// Item numbers to remove (from "ldr ls") numbers: Vec, }, /// Scan and review items interactively, from top to bottom @@ -73,7 +73,7 @@ enum Commands { /// Sets up XDG-compliant data directory paths for note.txt and archive.txt files. fn main() -> io::Result<()> { let cli = Cli::parse(); - let base = BaseDirectories::with_prefix("parts"); + let base = BaseDirectories::with_prefix("ldr"); let note_path = base .place_data_file("note.txt") .expect("Failed to create data directory"); diff --git a/src/tests.rs b/src/tests.rs index 3bc6618..3dc8f3d 100644 --- a/src/tests.rs +++ b/src/tests.rs @@ -1,4 +1,4 @@ -//! Comprehensive test suite for the parts todo system. +//! Comprehensive test suite for the ldr todo system. //! //! Tests cover all core functionality including content manipulation, //! command operations, filtering, and edge cases.