This commit is contained in:
Tiara Rodney 2026-02-10 18:59:59 +01:00
commit 76266cedc6
No known key found for this signature in database
GPG key ID: 5CD8EC1D46106723
23 changed files with 4041 additions and 0 deletions

View file

@ -0,0 +1,53 @@
#!/usr/bin/env node
// mime-todo/bin/main.ts
import { parseTodoFile } from "../lib/file"
async function main() {
const [, , cmd, ...args] = process.argv
const todo = await parseTodoFile()
switch (cmd) {
case "issues":
for (const issue of todo.issues) {
console.log(`#${issue.id} [${issue.type}] (${issue.status}) ${issue.title}`)
}
break
case "sprints":
for (const sprint of todo.sprints) {
console.log(`${sprint.name}: ${sprint.start}..${sprint.end}`)
}
break
case "issues-in-sprint": {
const name = args.join(" ")
const sprint = todo.sprints.find(s => s.name === name)
if (!sprint) {
console.error(`Sprint not found: ${name}`)
process.exit(1)
}
const { start, end } = sprint
for (const issue of todo.issues) {
const ds = issue.dueStart ?? issue.dueEnd
const de = issue.dueEnd ?? issue.dueStart
if (!ds || !de) continue
if (ds <= end && de >= start) {
console.log(`#${issue.id} [${issue.type}] (${issue.status}) ${issue.title}`)
}
}
break
}
default:
console.log(`Usage:
todo list
todo sprints
todo issues-in-sprint <name>`)
}
}
main().catch(err => {
console.error(err)
process.exit(1)
})