aboutsummaryrefslogtreecommitdiff
path: root/gnu/services/science.scm
blob: 94ff0f36f261f770ab66479c50f64f7b13e4cef4 (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
(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    ; package
                    (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.")))
nu: ghc-wai-logger: Update to 2.3.5....Timothy Sample 2019-11-20gnu: ghc-snap-server: Update to 1.1.1.1....Timothy Sample 2019-11-20gnu: ghc-wai: Update to 3.2.2.1....Timothy Sample 2019-11-20gnu: ghc-bsb-http-chunked: Update to 0.0.0.4....Timothy Sample 2019-11-20gnu: ghc-http2: Update to 1.6.5....Timothy Sample 2019-11-20gnu: ghc-aeson-pretty: Update to 0.8.8....Timothy Sample 2019-11-20gnu: ghc-http-client: Update to 0.6.4....Timothy Sample 2019-11-20gnu: ghc-snap-core: Update to 1.0.4.0....Timothy Sample 2019-11-20gnu: ghc-tls-session-manager: Update to 0.0.3....Timothy Sample 2019-11-20gnu: ghc-hxt: Update to 9.3.1.18....Timothy Sample 2019-11-20gnu: ghc-httpd-shed: Update to 0.4.1.1....Timothy Sample 2019-11-20gnu: ghc-aeson: Update to 1.4.5.0....Timothy Sample 2019-11-20gnu: ghc-blaze-html: Update to 0.9.1.2....Timothy Sample 2019-11-20gnu: ghc-tagsoup: Update to 0.14.8....Timothy Sample 2019-11-20gnu: ghc-hxt-charproperties: Update to 9.4.0.0....Timothy Sample 2019-11-20gnu: ghc-mime-types: Update to 0.1.0.9....Timothy Sample 2019-09-02gnu: Add ghc-js-flot....John Soo 2019-09-02gnu: Add ghc-js-jquery....John Soo 2019-08-07gnu: Add ghc-snap-server....Robert Vollmert 2019-08-07gnu: Add ghc-snap-core....Robert Vollmert 2019-08-07gnu: Add ghc-http-streams....Robert Vollmert 2019-08-07gnu: Add ghc-http-common....Robert Vollmert 2019-08-07gnu: Remove ghc-parsec, ghc-stm, ghc-text, ghc-xhtml....Robert Vollmert 2019-06-07gnu: ghc-http-types: Update to 0.12.3....Robert Vollmert 2019-06-06gnu: ghc-warp: Update to 3.2.27....Robert Vollmert 2019-05-22gnu: ghc-aeson-pretty: Fix typo "readability"....Vagrant Cascadian 2019-04-04gnu: ghc-tls: Move to haskell-crypto.scm....Ludovic Courtès 2019-04-04gnu: Move ghc-hxt & co. to haskell-web.scm....Ludovic Courtès