blob: c714731f2c8b4fd0bba9030c87b39491010346ca (
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
|
(use-modules ((gnu packages guile-xyz) #:select (guile-ini guile-lib guile-smc))
((gnu packages vpn) #:select (openconnect-sso vpn-slice))
(guix gexp))
;; Put in the hosts you are interested in here.
(define %hosts
(list "octopus01"
"tux01.genenetwork.org"))
(define (ini-file name scm)
"Return a file-like object representing INI file with @var{name} and
@var{scm} data."
(computed-file name
(with-extensions (list guile-ini guile-lib guile-smc)
#~(begin
(use-modules (srfi srfi-26)
(ini))
(call-with-output-file #$output
(cut scm->ini #$scm #:port <>))))))
(define uthsc-vpn
(with-imported-modules '((guix build utils))
#~(begin
(use-modules (guix build utils))
(setenv "OPENSSL_CONF"
#$(ini-file "openssl.cnf"
#~'((#f
("openssl_conf" . "openssl_init"))
("openssl_init"
("ssl_conf" . "ssl_sect"))
("ssl_sect"
("system_default" . "system_default_sect"))
("system_default_sect"
("Options" . "UnsafeLegacyRenegotiation")))))
(invoke #$(file-append openconnect-sso "/bin/openconnect-sso")
"--server" "uthscvpn1.uthsc.edu"
"--authgroup" "UTHSC"
"--"
"--script" (string-join (cons #$(file-append vpn-slice "/bin/vpn-slice")
'#$%hosts))))))
(program-file "uthsc-vpn" uthsc-vpn)
|