aboutsummaryrefslogtreecommitdiff
path: root/gnu/services/science.scm
blob: 1414789de973e48035647a52385be0562120d71a (about) (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2020 Efraim Flashner <efraim@flashner.co.il>
;;;
;;; This file is part of GNU Guix.
;;;
;;; GNU Guix 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.
;;;
;;; GNU Guix 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 GNU Guix.  If not, see <http://www.gnu.org/licenses/>.

(define-module (gnu services science)
  #:export (<rshiny-configuration>
            rshiny-configuration
            rshiny-configuration?
            rshiny-configuration-package
            rshiny-configuration-binary
            rshiny-shepherd-service
            rshiny-service-type))

(use-modules (gnu)
             (guix records)
             (ice-9 match))
(use-service-modules shepherd)
(use-package-modules cran)

(define-record-type* <rshiny-configuration>
  rshiny-configuration
  make-rshiny-configuration
  rshiny-configuration?
  (package          rshiny-configuration-package    ; file-like
                    (default r-shiny))
  (binary           rshiny-configuration-binary     ; string
                    (default "rshiny")))

(define rshiny-shepherd-service
  (match-lambda
    (($ <rshiny-configuration> package binary)
     (list
       (shepherd-service
         (documentation (string-append "R-Shiny service for " binary))
         (provision (list (symbol-append 'rshiny- (string->symbol
                                                    (string-take binary 9)))))
         (requirement '(networking))
         (start
           #~(exec-command
               (list
                 #$(string-append "/run/current-system/profile/bin/" binary))
               ;#:log-file #$(string-append "/var/log/" binary ".log") ; kills shepherd
               #:environment-variables
               (list "R_LIBS_USER=/run/current-system/profile/site-library/")))
         (stop #~(make-kill-destructor)))))))

(define rshiny-service-type
  (service-type
    (name 'rshiny)
    (extensions
      (list
        (service-extension shepherd-root-service-type
                           rshiny-shepherd-service)
        (service-extension profile-service-type
                           ;; We want the package installed so that it
                           ;; pulls in the propagated inputs as well.
                           (lambda (config)
                             (list
                               (rshiny-configuration-package config))))))
    (description
     "Run an R-Shiny webapp as a Guix Service.")))
class='nohover-highlight'> * doc/guix-cookbook.texi (Getting help, Customizing the Kernel): Fix ‘file system’ spelling. 2020-06-28doc: cookbook: Fix encoding of "André".Ludovic Courtès This is a followup to f8945734a5abff69644284231cc47fb67456657b. * doc/guix-cookbook.texi: Encode "André" as UTF-8, not ISO-8859-1. 2020-06-28doc: cookbook: Update entry about getting substitutes through Tor.André Batista * doc/guix-cookbook.texi (Getting substitutes from Tor): Update section warning to mention the use of torsocks when pulling. 2020-06-23doc: cookbook: Fix typos.Ludovic Courtès * doc/guix-cookbook.texi (Extended example): Fix typos. 2020-06-23doc: cookbook: Tweak intro to the REPL.Ludovic Courtès * doc/guix-cookbook.texi (A Scheme Crash Course): Reword first paragraph. Remove extra paren. 2020-06-23doc: cookbook: Mention "guix hash -rx" for Git checkouts.Ludovic Courtès * doc/guix-cookbook.texi (Extended example): Mention "guix hash -rx ." 2020-06-23doc: cookbook: Clarify 'git-fetch' conventions.Ludovic Courtès * doc/guix-cookbook.texi (Extended example): Clarify use of 'git-file-name' and 'git-version'. 2020-06-04doc: cookbook: Add entry about getting substitutes through Tor.Brice Waegeneire * doc/guix-cookbook.texi (Getting substitutes from Tor): New section. 2020-06-02doc: cookbook: Add entry about Wireguard VPN.Marcin Karpezo Co-authored-by: Brice Waegeneire <brice@waegenei.re> * doc/guix-cookbook.texi (Connect to Wireguard VPN): New section. 2020-05-25doc: cookbook: Add subsection about session locking with xss-lock.Chris Bøg * doc/guix-cookbook.texi (Session lock): New node. Signed-off-by: Ludovic Courtès <ludo@gnu.org> 2020-05-05doc: cookbook: Fix sbcl-ttf-fonts package name.Jean-Baptiste Note * doc/guix-cookbook.texi (StumpWM): Adjust sbcl-ttf-fonts package name. Signed-off-by: Marius Bakke <mbakke@fastmail.com> 2020-04-30doc: cookbook: Rename stumpwm package to current state.Marcin Karpezo * doc/guix-cookbook.texi (StumpWM): Rename STUMPWM package to current state. Signed-off-by: Oleg Pykhalov <go.wigust@gmail.com> 2020-04-25doc: cookbook: Fix quotes.Nicolas Goaziou * doc/guix-cookbook.texi (Basic setup with manifests): (Default profile): (The benefits of manifests): Use proper quotes in regular texts. 2020-04-24doc: cookbook: Use @file for file names and extensions.Nicolas Goaziou * doc/guix-cookbook.texi (@samp{GUIX_PACKAGE_PATH}): (Extended example): (Setting up a bind mount): (Basic setup with manifests): (Default profile): Use @file instead of @samp or @code for file names and extensions. 2020-04-24doc: cookbook: Fix misuses of double spacing.Nicolas Goaziou * doc/guix-cookbook.texi (Extended example): (StumpWM): (Basic setup with manifests): Prevent Texinfo from ending a sentence where it should not. (Setting up a bind mount): Add two spaces where needed. 2020-04-22doc: cookbook: Explain how to use bind mounts.Matthew Brooks * doc/guix-cookbook.texi (Setting up a bind mount): Add example. Signed-off-by: Leo Famulari <leo@famulari.name> 2020-03-30gnu: Add sbcl-stumpwm-ttf-fonts.Oleg Pykhalov * gnu/packages/wm.scm (sbcl-stumpwm-ttf-fonts): New variable. * doc/guix-cookbook.texi (Customizing a Window Manager): Document SBCL-STUMPWM-TTF-FONTS installation and configuration. 2020-01-17doc: cookbook: Avoid URL reference to the manual.Ludovic Courtès * doc/guix-cookbook.texi (Other build systems): Use @xref instead of @uref, and remove section number. 2019-11-26doc: cookbook: Add cross-references to the Guile manual.Ludovic Courtès * doc/guix-cookbook.texi (A Scheme Crash Course): Add cross-reference to the Guile manual. 2019-11-26doc: cookbook: Use @result{} & co. instead of a '>' prompt.Ludovic Courtès * doc/guix-cookbook.texi (A Scheme Crash Course) (Extended example): Use @result{}, @print{}, and @error{}. 2019-11-26doc: cookbook: Use Texinfo quotes.Ludovic Courtès * doc/guix-cookbook.texi: Use Texinfo quotes ``like this'' instead of straight quotes or curly quotes. 2019-11-26doc: cookbook: Add cross-reference about ./pre-inst-env.Ludovic Courtès * doc/guix-cookbook.texi (Direct checkout hacking): Refer to "Running Guix Before It Is Installed". 2019-11-26doc: cookbook: Use @lisp for Scheme snippets.Ludovic Courtès * doc/guix-cookbook.texi: Use @lisp instead of @example where appropriate. 2019-10-30doc: Explain how to switch profile from empty shell in "Profiles in Practice".Pierre Neidhardt * doc/guix-cookbook.texi (Profiles in Practice): Add example. 2019-10-28doc: Link to SICP Info page in "A Scheme Crash Course".Pierre Neidhardt * doc/guix-cookbook.texi (Scheme tutorials): Replace Emacs Info reader hint with more useful interactive link to SICP Info page. 2019-10-28doc: Finish importing the "Packaging Tutorial".Pierre Neidhardt * doc/guix-cookbook.texi (Packaging Tutorial): Import all sections after the Scheme crash course. 2019-10-28doc: Fix some typos in "Guix Profiles in Practice".Pierre Neidhardt * doc/guix-cookbook.texi (Guix Profiles in Practice): Fix typos. 2019-10-25doc: cookbook: Use "@lisp" for Scheme snippets.Ludovic Courtès * doc/guix-cookbook.texi: Use @lisp for Scheme snippets instead of "@example scheme". This allows for syntax highlighting of the HTML output. 2019-10-24doc: Add "Guix Profiles in Practice" to the cookbook.Pierre Neidhardt * doc/guix-cookbook.texi (Advanced package management): New chapter. * doc/guix-cookbook.texi (Guix Profiles in Practice): New section.