mirror of
https://github.com/Gnucash/gnucash.git
synced 2025-02-25 18:55:30 -06:00
[gnucash-cli] improve discoverability of export-type
Formerly, selecting --export-type EXT would dump the cryptic "Report REPORTNAME has no export code". Modify to hint the user on acceptable reports with export-code.
This commit is contained in:
parent
a108c5501d
commit
c91f0c81f8
@ -32,6 +32,7 @@
|
|||||||
(use-modules (ice-9 match))
|
(use-modules (ice-9 match))
|
||||||
(use-modules (srfi srfi-1))
|
(use-modules (srfi srfi-1))
|
||||||
(use-modules (srfi srfi-9))
|
(use-modules (srfi srfi-9))
|
||||||
|
(use-modules (srfi srfi-26))
|
||||||
(use-modules (gnucash report report-register-hooks))
|
(use-modules (gnucash report report-register-hooks))
|
||||||
(use-modules (gnucash report html-style-sheet))
|
(use-modules (gnucash report html-style-sheet))
|
||||||
(use-modules (gnucash report html-document))
|
(use-modules (gnucash report html-document))
|
||||||
@ -811,6 +812,17 @@ not found.")))
|
|||||||
;; gnucash-cli helper and exported functions
|
;; gnucash-cli helper and exported functions
|
||||||
;;
|
;;
|
||||||
|
|
||||||
|
(define (show-selected-reports pred? port)
|
||||||
|
(for-each
|
||||||
|
(lambda (template)
|
||||||
|
(format port "* ~a ~a\n"
|
||||||
|
(if (gnc:report-template-parent-type template) "C" " ")
|
||||||
|
(gnc:report-template-name template)))
|
||||||
|
(sort (hash-fold (lambda (k v p) (if (pred? v) (cons v p) p)) '()
|
||||||
|
*gnc:_report-templates_*)
|
||||||
|
(lambda (a b) (gnc:string-locale<? (gnc:report-template-name a)
|
||||||
|
(gnc:report-template-name b))))))
|
||||||
|
|
||||||
(define (stderr-log tmpl . args)
|
(define (stderr-log tmpl . args)
|
||||||
(apply format (current-error-port) tmpl args)
|
(apply format (current-error-port) tmpl args)
|
||||||
#f)
|
#f)
|
||||||
@ -825,7 +837,11 @@ not found.")))
|
|||||||
(export-types (gnc:report-template-export-types template)))
|
(export-types (gnc:report-template-export-types template)))
|
||||||
|
|
||||||
(cond
|
(cond
|
||||||
((not export-thunk) (stderr-log "Report ~s has no export code\n" report))
|
((not export-thunk)
|
||||||
|
(stderr-log "Only the following reports have export code:\n")
|
||||||
|
(show-selected-reports (cut gnc:report-template-export-thunk <>)
|
||||||
|
(current-error-port))
|
||||||
|
(stderr-log "Use -R show to describe report\n"))
|
||||||
((not export-types) (stderr-log "Report ~s has no export-types\n" report))
|
((not export-types) (stderr-log "Report ~s has no export-types\n" report))
|
||||||
((not (assoc export-type export-types))
|
((not (assoc export-type export-types))
|
||||||
(stderr-log "Export-type disallowed: ~a. Allowed types: ~a\n"
|
(stderr-log "Export-type disallowed: ~a. Allowed types: ~a\n"
|
||||||
@ -846,17 +862,7 @@ not found.")))
|
|||||||
'() *gnc:_report-templates_*)))
|
'() *gnc:_report-templates_*)))
|
||||||
|
|
||||||
(define-public (gnc:cmdline-report-list port)
|
(define-public (gnc:cmdline-report-list port)
|
||||||
(for-each
|
(show-selected-reports gnc:report-template-in-menu? port))
|
||||||
(lambda (template)
|
|
||||||
(format port "* ~a ~a\n"
|
|
||||||
(if (gnc:report-template-parent-type template) "C" " ")
|
|
||||||
(gnc:report-template-name template)))
|
|
||||||
(sort (hash-fold
|
|
||||||
(lambda (k v p) (if (gnc:report-template-in-menu? v) (cons v p) p))
|
|
||||||
'() *gnc:_report-templates_*)
|
|
||||||
(lambda (a b)
|
|
||||||
(gnc:string-locale<? (gnc:report-template-name a)
|
|
||||||
(gnc:report-template-name b))))))
|
|
||||||
|
|
||||||
(define-public (gnc:cmdline-report-show report port)
|
(define-public (gnc:cmdline-report-show report port)
|
||||||
(let ((templates (reportname->templates report)))
|
(let ((templates (reportname->templates report)))
|
||||||
|
Loading…
Reference in New Issue
Block a user