diff --git a/Todo.md b/Todo.md new file mode 100644 index 0000000..56728ad --- /dev/null +++ b/Todo.md @@ -0,0 +1,30 @@ +# To do + +* migrate this todo list into entomologist + +* teach it to work with a git branch + - unpack the branch to a directory with `git worktree ${TMPDIR} ${BRANCH}` + - operate on the issues in that worktree + - git commit the result back to ${BRANCH} + - delete and prune the worktree + +* implement `ent new` + +* implement user control over state transitions + +* implement `ent comment ${ISSUE} [-m ${MESSAGE}]` + - each issue dir has a `comments` subdir + - each comment is identified by a sha1-style uid + - each comment is a file or directory under the `${ISSUE}/comments` + - comments are ordered by ctime? + +* implement `ent edit ${ISSUE} [-t ${TITLE}] [-d ${DESCRIPTION}]` + - or would it be better to put the title and description together into a new `message`, like git commits? + +* implement `ent edit ${COMMENT}` + +* implement `ent attach ${ISSUE} ${FILE}` + - each issue has its own independent namespace for attached files + - issue description & comments can reference attached files via standard md links + +* write a manpage diff --git a/src/bin/ent/main.rs b/src/bin/ent/main.rs index 238bbe3..53ecf9d 100644 --- a/src/bin/ent/main.rs +++ b/src/bin/ent/main.rs @@ -16,14 +16,12 @@ struct Args { enum Commands { /// List issues. List, - // Mdbook { - // /// The name of the recipe to create MD Book for. - // target: String, - // }, - // Info { - // /// The name of the recipe to show info for. - // target: String, - // }, + + /// Create a new issue. + New { + title: Option, + description: Option, + }, } fn main() -> anyhow::Result<()> { @@ -38,6 +36,12 @@ fn main() -> anyhow::Result<()> { println!("{} {} ({:?})", uuid, issue.title, issue.state); } } + Commands::New { title, description } => { + println!( + "should make a new issue, title={:?}, description={:?}", + title, description + ); + } } Ok(())