diff options
Diffstat (limited to 'doc')
-rw-r--r-- | doc/guix.texi | 36 |
1 files changed, 35 insertions, 1 deletions
diff --git a/doc/guix.texi b/doc/guix.texi index 043851e418..6499b39ebf 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -6112,7 +6112,7 @@ interpreter version. By default guix calls @code{setup.py} under control of @code{setuptools}, much like @command{pip} does. Some packages are not compatible with setuptools (and pip), thus you can disable this by -setting the @code{#:use-setuptools} parameter to @code{#f}. +setting the @code{#:use-setuptools?} parameter to @code{#f}. @end defvr @defvr {Scheme Variable} perl-build-system @@ -12442,6 +12442,40 @@ gexps to introduce job definitions that are passed to mcron %base-services))) @end lisp +For more complex jobs defined in Scheme where you need control over the top +level, for instance to introduce a @code{use-modules} form, you can move your +code to a separate program using the @code{program-file} procedure of the +@code{(guix gexp)} module (@pxref{G-Expressions}). The example below +illustrates that. + +@lisp +(define %battery-alert-job + ;; Beep when the battery percentage falls below %MIN-LEVEL. + #~(job + '(next-minute (range 0 60 1)) + #$(program-file + "battery-alert.scm" + (with-imported-modules (source-module-closure + '((guix build utils))) + #~(begin + (define %min-level 20) + (use-modules (guix build utils) + (ice-9 popen) + (ice-9 regex) + (ice-9 textual-ports) + (srfi srfi-2)) + (setenv "LC_ALL" "C") ;ensure English output + (and-let* ((input-pipe (open-pipe* + OPEN_READ + #$(file-append acpi "/bin/acpi"))) + (output (get-string-all input-pipe)) + (m (string-match "Discharging, ([0-9]+)%" output)) + (level (string->number (match:substring m 1))) + ((< level %min-level))) + (format #t "warning: Battery level is low (~a%)~%" level) + (invoke #$(file-append beep "/bin/beep") "-r5"))))))) +@end lisp + @xref{Guile Syntax, mcron job specifications,, mcron, GNU@tie{}mcron}, for more information on mcron job specifications. Below is the reference of the mcron service. |