summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRicardo Wurmus <rekado@elephly.net>2019-07-19 23:25:51 +0200
committerRicardo Wurmus <rekado@elephly.net>2019-07-19 23:25:51 +0200
commit0f356ae123ef1045c05b9c8e1471397d309cba15 (patch)
tree3a3c72062befeabf03f852674503a3e2fbf11e9d
parent0e7bb74252714bf4886685e06e35407707754b78 (diff)
Add debbugs module.
* debbugs.scm: New file. * Makefile.am (SOURCES): Add it. * doc/guile-debbugs.texi: Document it.
-rw-r--r--Makefile.am1
-rw-r--r--debbugs.scm42
-rw-r--r--doc/guile-debbugs.texi11
3 files changed, 46 insertions, 8 deletions
diff --git a/Makefile.am b/Makefile.am
index 4606e76..b8f8b7d 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -22,6 +22,7 @@ moddir=$(prefix)/share/guile/site/@GUILE_EFFECTIVE_VERSION@
godir=$(libdir)/guile/@GUILE_EFFECTIVE_VERSION@/ccache
SOURCES = \
+ debbugs.scm \
debbugs/base64.scm \
debbugs/bug.scm \
debbugs/cache.scm \
diff --git a/debbugs.scm b/debbugs.scm
new file mode 100644
index 0000000..51e8ffd
--- /dev/null
+++ b/debbugs.scm
@@ -0,0 +1,42 @@
+;;; Guile-Debbugs --- Guile bindings for Debbugs
+;;; Copyright © 2019 Ricardo Wurmus <rekado@elephly.net>
+;;;
+;;; This file is part of Guile-Debbugs.
+;;;
+;;; Guile-Debbugs 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.
+;;;
+;;; Guile-Debbugs 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 Guile-Debbugs. If not, see <http://www.gnu.org/licenses/>.
+
+(define-module (debbugs)
+ #:use-module (debbugs soap)
+ #:use-module (debbugs bug)
+ #:use-module (debbugs operations)
+ #:use-module (ice-9 match)
+ #:export
+ (%debian %gnu))
+
+(define* (%debian #:optional (type 'soap))
+ (match type
+ ('soap "https://bugs.debian.org/cgi/soap.cgi")
+ ('email "https://bugs.debian.org/cgi-bin/bugreport.cgi")))
+
+(define* (%gnu #:optional (type 'soap))
+ (match type
+ ('soap "https://debbugs.gnu.org/cgi/soap.cgi")
+ ('email "https://debbugs.gnu.org/cgi-bin/bugreport.cgi")))
+
+;; Export public bindings from other modules for convenience.
+(for-each (let ((i (module-public-interface (current-module))))
+ (lambda (m)
+ (module-use! i (resolve-interface
+ `(debbugs ,m)))))
+ '(bug operations soap))
diff --git a/doc/guile-debbugs.texi b/doc/guile-debbugs.texi
index 6b39b3e..fa5fa20 100644
--- a/doc/guile-debbugs.texi
+++ b/doc/guile-debbugs.texi
@@ -10,7 +10,7 @@
@include version.texi
@copying
-Copyright @copyright{} 2017 Ricardo Wurmus@*
+Copyright @copyright{} 2017, 2018, 2019 Ricardo Wurmus@*
Permission is granted to copy, distribute and/or modify this document
under the terms of the GNU Free Documentation License, Version 1.3 or
@@ -70,13 +70,8 @@ can do with this library:
@cindex example, REPL session
@lisp
-(set! %load-path (cons "/path/to/guile-debbugs/" %load-path))
-,use (debbugs soap)
-,use (debbugs operations)
-,use (debbugs bug)
-,use (debbugs email)
-(define %debian "http://bugs.debian.org/cgi-bin/soap.cgi")
-(define %gnu "https://debbugs.gnu.org/cgi/soap.cgi")
+,use (debbugs)
+,use (email email)
(soap-invoke %debian newest-bugs 3)
$1 = (880882 880881 880880)
(soap-invoke %debian get-status $1)