summary refs log tree commit diff
diff options
context:
space:
mode:
authorJoshua S. Grant <jgrant@parenthetical.io>2015-01-22 16:59:35 +0100
committerLudovic Courtès <ludo@gnu.org>2015-01-22 17:01:01 +0100
commitfbb020451ea25896936a5fba966612b59c0bcdf3 (patch)
treec5a6650e4c6e282167d5cffa8e2e5d6626bc3158
parent3698f524d5d1777aebec653c444783800a70417a (diff)
downloadguix-fbb020451ea25896936a5fba966612b59c0bcdf3.tar.gz
gnu: Add convenience macros to make module imports more concise.
* gnu.scm (use-package-modules, use-service-modules,
  use-system-modules): New macros.
-rw-r--r--gnu.scm15
1 files changed, 14 insertions, 1 deletions
diff --git a/gnu.scm b/gnu.scm
index eb0bf71ab1..d9b9117b8a 100644
--- a/gnu.scm
+++ b/gnu.scm
@@ -1,5 +1,6 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2014 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2015 Joshua S. Grant <jgrant@parenthetical.io>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -16,7 +17,10 @@
 ;;; You should have received a copy of the GNU General Public License
 ;;; along with GNU Guix.  If not, see <http://www.gnu.org/licenses/>.
 
-(define-module (gnu))
+(define-module (gnu)
+  #:export (use-package-modules
+            use-service-modules
+            use-system-modules))
 
 ;;; Commentary:
 ;;;
@@ -44,4 +48,13 @@
                   (module-use! i (resolve-interface m))))
               %public-modules)))
 
+(define-syntax-rule (use-package-modules module ...)
+  (use-modules (gnu packages module) ...))
+
+(define-syntax-rule (use-service-modules module ...)
+  (use-modules (gnu services module) ...))
+
+(define-syntax-rule (use-system-modules module ...)
+  (use-modules (gnu system module) ...))
+
 ;;; gnu.scm ends here