Move help command to its own module

This commit is contained in:
Tom Willemse 2014-03-01 15:45:46 +01:00
parent 78b63229f6
commit d5f38b4f6d
3 changed files with 52 additions and 29 deletions

View file

@ -4,7 +4,8 @@ SITEDIR = $(shell pkg-config guile-2.0 --variable=sitedir \
COMPDIR = $(DESTDIR)/lib/guile/2.0/site-ccache
objects = command.scm command.go config.scm config.go git.scm git.go \
ui.scm ui.go path.scm path.go main.scm main.go
ui.scm ui.go path.scm path.go commands/help.scm commands/help.go \
main.scm main.go
install-objects = $(addprefix install-,$(objects))
uninstall-objects = $(addprefix uninstall-,$(objects))

49
gitto/commands/help.scm Normal file
View file

@ -0,0 +1,49 @@
;; -*- coding: utf-8; -*-
;; gitto -- Keep track of your git repositories
;; Copyright (C) 2012 Tom Willemse <tom at ryuslash dot org>
;; This file is part of gitto.
;; gitto is free software: you can redistribute it and/or modify
;; it under the terms of the GNU General Public License as published by
;; the Free Software Foundation, either version 3 of the License, or
;; (at your option) any later version.
;; gitto is distributed in the hope that it will be useful,
;; but WITHOUT ANY WARRANTY; without even the implied warranty of
;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
;; GNU General Public License for more details.
;; You should have received a copy of the GNU General Public License
;; along with gitto. If not, see <http://www.gnu.org/licenses/>.
(define-module (gitto commands help)
#:use-module (gitto command)
#:use-module (ice-9 format))
(define (print-command-help command)
"Print the help message for COMMAND."
(if (command? command)
(format #t "~a~%" (command-documentation command))
(format #t "Unknown command: ~a~%" command)))
(define (print-short-command-help command)
"Print COMMAND's name and its short description."
(format #t " ~a~15t~a~%" (car command) (assq-ref command #:usage)))
(define (print-general-help)
"Print the general help message for gitto."
(display "gitto [command [arguments ...]]")
(newline)
(for-each-command print-short-command-help))
(define-command (help #:optional command)
"Display this help."
"Usage: gitto help [COMMAND]
Display a help message. If COMMAND is not specified, print some
information about gitto, otherwise print some information about
COMMAND."
(if command
(print-command-help command)
(print-general-help)))

View file

@ -19,11 +19,11 @@
(define-module (gitto main)
#:use-module (gitto command)
#:use-module (gitto commands help)
#:use-module (gitto config)
#:use-module (gitto git)
#:use-module (gitto path)
#:use-module (gitto ui)
#:use-module (ice-9 format)
#:use-module (ice-9 popen)
#:use-module (oop goops)
#:use-module (srfi srfi-1)
@ -58,33 +58,6 @@ Displays version and some copyright information."
(display "under the terms of the GNU General Public License.") (newline)
(display "For more information about these matters, see the file named COPYING.") (newline))
(define (print-command-help command)
"Print the help message for COMMAND."
(if (command? command)
(format #t "~a~%" (command-documentation command))
(format #t "Unknown command: ~a~%" command)))
(define (print-short-command-help command)
"Print COMMAND's name and its short description."
(format #t " ~a~15t~a~%" (car command) (assq-ref command #:usage)))
(define (print-general-help)
"Print the general help message for gitto."
(display "gitto [command [arguments ...]]")
(newline)
(for-each-command print-short-command-help))
(define-command (help #:optional command)
"Display this help."
"Usage: gitto help [COMMAND]
Display a help message. If COMMAND is not specified, print some
information about gitto, otherwise print some information about
COMMAND."
(if command
(print-command-help command)
(print-general-help)))
(define (known? repo)
"Do we know REPO?"
(and (or (repository? repo) (string? repo))