aboutsummaryrefslogtreecommitdiff
path: root/gnu
diff options
context:
space:
mode:
authorMartin Becze <mjbecze@riseup.net>2020-11-30 14:24:07 -0600
committerChristopher Baines <mail@cbaines.net>2020-12-08 08:50:43 +0000
commit2d9acf675ab14aa2fff0d1aa97d8d0c0d2a575ba (patch)
tree2aafc87a94816704677b5d4c29d9981ed6aed8e8 /gnu
parent2d0716e08127eef0732d272125d4c875f5009109 (diff)
downloadguix-2d9acf675ab14aa2fff0d1aa97d8d0c0d2a575ba.tar.gz
guix-2d9acf675ab14aa2fff0d1aa97d8d0c0d2a575ba.zip
gnu: Add go-gopkg-in-natefinch-lumberjack.v2.
* gnu/packages/golang.scm (go-gopkg-in-natefinch-lumberjack.v2): New variable. Signed-off-by: Christopher Baines <mail@cbaines.net>
Diffstat (limited to 'gnu')
-rw-r--r--gnu/packages/golang.scm26
1 files changed, 26 insertions, 0 deletions
diff --git a/gnu/packages/golang.scm b/gnu/packages/golang.scm
index 876b331aba..bacb835dec 100644
--- a/gnu/packages/golang.scm
+++ b/gnu/packages/golang.scm
@@ -546,6 +546,32 @@ termination.")
(home-page "https://gopkg.in/tomb.v2")
(license license:bsd-3))))
+(define-public go-gopkg-in-natefinch-lumberjack.v2
+ (package
+ (name "go-gopkg-in-natefinch-lumberjack.v2")
+ (version "2.1")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/natefinch/lumberjack")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "1l3vlv72b7rfkpy1164kwd3qzrqmmjnb67akzxqp2mlvc66k6p3d"))))
+ (build-system go-build-system)
+ (arguments
+ '(#:import-path "gopkg.in/natefinch/lumberjack.v2"))
+ (propagated-inputs
+ `(("github.com/burntsush/toml" ,go-github-com-burntsushi-toml)
+ ("gopkg.in/yaml.v2" ,go-gopkg-in-yaml-v2)))
+ (home-page "https://github.com/natefinch/lumberjack")
+ (synopsis "Rolling logger for Go")
+ (description
+ "Lumberjack is a Go package for writing logs to rolling files.")
+ (license license:expat)))
+
(define-public go-github.com-jtolds-gls
(package
(name "go-github.com-jtolds-gls")
re; 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 tests guix) #:use-module (gnu tests) #:use-module (gnu system) #:use-module (gnu system file-systems) #:use-module (gnu system shadow) #:use-module (gnu system vm) #:use-module (gnu services) #:use-module (gnu services guix) #:use-module (gnu services databases) #:use-module (gnu services shepherd) #:use-module (gnu services networking) #:use-module (gnu packages databases) #:use-module (guix packages) #:use-module (guix modules) #:use-module (guix records) #:use-module (guix gexp) #:use-module (guix store) #:use-module (guix utils) #:use-module (ice-9 match) #:export (%test-guix-data-service)) ;;; ;;; Guix Data Service ;;; (define guix-data-service-initial-database-setup-service (let ((user "guix_data_service") (name "guix_data_service")) (define start-gexp #~(lambda () (let ((pid (primitive-fork)) (postgres (getpwnam "postgres"))) (if (eq? pid 0) (dynamic-wind (const #t) (lambda () (setgid (passwd:gid postgres)) (setuid (passwd:uid postgres)) (primitive-exit (if (and (zero? (system* #$(file-append postgresql "/bin/createuser") #$user)) (zero? (system* #$(file-append postgresql "/bin/createdb") "-O" #$user #$name))) 0 1))) (lambda () (primitive-exit 1))) (zero? (cdr (waitpid pid))))))) (shepherd-service (requirement '(postgres)) (provision '(guix-data-service-initial-database-setup)) (start start-gexp) (stop #~(const #f)) (respawn? #f) (one-shot? #t) (documentation "Setup Guix Data Service database.")))) (define %guix-data-service-os (simple-operating-system (service dhcp-client-service-type) (service postgresql-service-type (postgresql-configuration (config-file (postgresql-config-file (hba-file (plain-file "pg_hba.conf" " local all all trust host all all 127.0.0.1/32 trust host all all ::1/128 trust")))))) (service guix-data-service-type (guix-data-service-configuration (host "0.0.0.0"))) (simple-service 'guix-data-service-database-setup shepherd-root-service-type (list guix-data-service-initial-database-setup-service)))) (define (run-guix-data-service-test) (define os (marionette-operating-system %guix-data-service-os #:imported-modules '((gnu services herd) (guix combinators)))) (define forwarded-port 8080) (define vm (virtual-machine (operating-system os) (memory-size 1024) (port-forwardings `((,forwarded-port . 8765))))) (define test (with-imported-modules '((gnu build marionette)) #~(begin (use-modules (srfi srfi-11) (srfi srfi-64) (gnu build marionette) (web uri) (web client) (web response)) (define marionette (make-marionette (list #$vm))) (mkdir #$output) (chdir #$output) (test-begin "guix-data-service") (test-assert "service running" (marionette-eval '(begin (use-modules (gnu services herd)) (match (start-service 'guix-data-service) (#f #f) (('service response-parts ...) (match (assq-ref response-parts 'running) ((pid) (number? pid)))))) marionette)) (test-assert "process jobs service running" (marionette-eval '(begin (use-modules (gnu services herd)) (match (start-service 'guix-data-service-process-jobs) (#f #f) (('service response-parts ...) (match (assq-ref response-parts 'running) ((pid) (number? pid)))))) marionette)) (test-equal "http-get" 200 (let-values (((response text) (http-get #$(simple-format #f "http://localhost:~A/healthcheck" forwarded-port) #:decode-body? #t))) (response-code response))) (test-end) (exit (= (test-runner-fail-count (test-runner-current)) 0))))) (gexp->derivation "guix-data-service-test" test)) (define %test-guix-data-service (system-test (name "guix-data-service") (description "Connect to a running Guix Data Service.") (value (run-guix-data-service-test))))