aboutsummaryrefslogtreecommitdiff
path: root/tw/packages/restic.scm
blob: 9c1a586594b5c0be84e2547816c75a01166abe8f (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
76
77
78
79
80
(define-module (tw packages restic)
  #:use-module (gnu packages golang)
  #:use-module (gnu packages syncthing) ;some Go libraries
  #:use-module (guix build utils)
  #:use-module (guix build-system copy)
  #:use-module (guix build-system go)
  #:use-module (guix git-download)
  #:use-module (guix packages)
  #:use-module ((guix licenses)
                #:prefix license:))

(define-public go-github-com-coreos-go-systemd-activation
  (package
    (name "go-github-com-coreos-go-systemd-activation")
    (version "0.0.0-20191104093116-d3cd4ed1dbcf")
    (source (origin
              (method git-fetch)
              (uri (git-reference
                    (url "https://github.com/coreos/go-systemd")
                    (commit (go-version->git-ref version))))
              (file-name (git-file-name name version))
              (sha256
               (base32
                "193mgqn7n4gbb8jb5kyn6ml4lbvh4xs55qpjnisaz7j945ik3kd8"))))
    (build-system go-build-system)
    (arguments
     '(#:import-path "github.com/coreos/go-systemd/activation"
       #:unpack-path "github.com/coreos/go-systemd"))
    (home-page "https://github.com/coreos/go-systemd")
    (synopsis "Go bindings to systemd socket activation")
    (description "Go bindings to systemd socket activation; for writing and
using socket activation from Go.")
    (license license:asl2.0)))

(define-public restic-rest-server
  (package
    (name "restic-rest-server")
    (version "0.11.0")
    (source (origin
              (method git-fetch)
              (uri (git-reference
                    (url "https://github.com/restic/rest-server")
                    (commit (string-append "v" version))))
              (file-name (git-file-name name version))
              (sha256
               (base32
                "1nvmxc9x0mlks6yfn66fmwn50k5q83ip4g9vvb0kndzd7hwcyacy"))))
    (build-system go-build-system)
    (arguments
     '(#:import-path "github.com/restic/rest-server/cmd/rest-server"
       #:unpack-path "github.com/restic/rest-server"
       #:install-source? #f ;all we need is the binary
       #:phases (modify-phases %standard-phases
                  (replace 'check
                    (lambda* (#:key tests? #:allow-other-keys . args)
                      (when tests?
                        ;; Unit tests seems to break with Guix' non-standard TMPDIR.
                        (setenv "TMPDIR" "/tmp")
                        (apply (assoc-ref %standard-phases
                                          'check) args))))
                  (add-after 'install 'rename-binary
                    (lambda* (#:key outputs #:allow-other-keys)
                      (with-directory-excursion (assoc-ref outputs "out")
                        ;; "rest-server" is a bit too generic.
                        (rename-file "bin/rest-server"
                                     "bin/restic-rest-server")))))))
    (propagated-inputs (list go-golang-org-x-crypto
                             go-github-com-spf13-cobra
                             go-github-com-prometheus-client-golang
                             go-github-com-miolini-datacounter
                             go-github-com-minio-sha256-simd
                             go-github-com-gorilla-handlers
                             go-github-com-coreos-go-systemd-activation))
    (home-page "https://github.com/restic/rest-server")
    (synopsis "Restic REST server")
    (description
     "The Restic REST server is a high performance HTTP server that implements
restic's REST backend API.  It provides a secure and efficient way to backup
data remotely, using the restic backup client and a @code{rest:} URL.")
    (license license:bsd-2)))