diff --git a/pit.nimble b/pit.nimble index 999aac8..cc4ae5c 100644 --- a/pit.nimble +++ b/pit.nimble @@ -1,6 +1,6 @@ # Package -version = "4.24.1" +version = "4.25.0" author = "Jonathan Bernard" description = "Personal issue tracker." license = "MIT" diff --git a/src/pit.nim b/src/pit.nim index c0edccc..d13a6f6 100644 --- a/src/pit.nim +++ b/src/pit.nim @@ -70,6 +70,24 @@ proc formatIssue*(issue: Issue): string = result &= termReset +proc formatPlainIssueSummary*(issue: Issue): string = + + result = "$#: $# $#" % [ + $issue.state, + ($issue.id)[0..<6], + issue.summary ] + + if issue.hasProp("delegated-to") or issue.hasProp("pending"): + var parts = newSeq[string]() + + if issue.hasProp("delegated-to"): + parts.add("delegated to " & issue["delegated-to"]) + + if issue.hasProp("pending"): + parts.add("pendin: " & issue["pending"]) + + result &= "($#)" % [ parts.join("; ") ] + proc formatSectionIssue*( issue: Issue, width: int = 80, @@ -251,7 +269,15 @@ proc list( it.hasProp("completed") and sameDay(getTime().local, it.getDateTime("completed"))) - stdout.write ctx.formatSection(ctx.issues[state], state, "", verbose) + if isatty(stdin): + stdout.write ctx.formatSection(ctx.issues[state], state, "", verbose) + + else: + stdout.writeLine ctx.issues[state] + .mapIt(formatPlainIssueSummary(it)) + .join("\n") + + trace "listing complete" return @@ -279,7 +305,13 @@ proc list( not (it.hasProp("hide-until") and it.getDateTime("hide-until") > getTime().local)) - stdout.write ctx.formatSection(visibleIssues, s, indent, verbose) + if isatty(stdin): + stdout.write ctx.formatSection(visibleIssues, s, indent, verbose) + + else: + stdout.writeLine visibleIssues + .mapIt(formatPlainIssueSummary(it)) + .join("\n") # Future items if future: @@ -296,7 +328,13 @@ proc list( not (it.hasProp("hide-until") and it.getDateTime("hide-until") > getTime().local)) - stdout.write ctx.formatSection(visibleIssues, s, indent, verbose) + if isatty(stdin): + stdout.write ctx.formatSection(visibleIssues, s, indent, verbose) + + else: + stdout.writeLine visibleIssues + .mapIt(formatPlainIssueSummary(it)) + .join("\n") trace "listing complete" diff --git a/src/pitpkg/cliconstants.nim b/src/pitpkg/cliconstants.nim index 3592484..d8f8a6f 100644 --- a/src/pitpkg/cliconstants.nim +++ b/src/pitpkg/cliconstants.nim @@ -1,4 +1,4 @@ -const PIT_VERSION* = "4.24.1" +const PIT_VERSION* = "4.25.0" const USAGE* = """Usage: pit ( new | add) [] [options]