aboutsummaryrefslogtreecommitdiff
path: root/gnu/services/version-control.scm
diff options
context:
space:
mode:
authorOleg Pykhalov <go.wigust@gmail.com>2017-12-12 02:13:55 +0300
committerOleg Pykhalov <go.wigust@gmail.com>2018-02-28 04:40:56 +0300
commite1cf4fd2d2fc0aab0f91c8ac961a8134cbefe200 (patch)
tree5c1923f5cce7a5257c88b4316e37e24129bf6a29 /gnu/services/version-control.scm
parent29d37e999c495431eafde90027d2b97b16d0db4e (diff)
downloadguix-e1cf4fd2d2fc0aab0f91c8ac961a8134cbefe200.tar
guix-e1cf4fd2d2fc0aab0f91c8ac961a8134cbefe200.tar.gz
services: cgit: Add more configuration fields.
* gnu/services/version-control.scm (cgit-service-type): Move to separate file. * gnu/services/cgit.scm: New file. * gnu/local.mk (GNU_SYSTEM_MODULES): Add this. * gnu/tests/version-control.scm: Add this. * doc/guix.texi (Cgit Service): Document this.
Diffstat (limited to 'gnu/services/version-control.scm')
-rw-r--r--gnu/services/version-control.scm121
1 files changed, 0 insertions, 121 deletions
diff --git a/gnu/services/version-control.scm b/gnu/services/version-control.scm
index 7166ed3d4f..afead87ec7 100644
--- a/gnu/services/version-control.scm
+++ b/gnu/services/version-control.scm
@@ -38,26 +38,6 @@
git-daemon-configuration
git-daemon-configuration?
- <cgit-configuration-file>
- cgit-configuration-file
- cgit-configuration-file?
- cgit-configuration-file-css
- cgit-configuration-file-logo
- cgit-configuration-file-robots
- cgit-configuration-file-virtual-root
- cgit-configuration-file-repository-directory
-
- <cgit-configuration>
- cgit-configuration
- cgit-configuration?
- cgit-configuration-config-file
- cgit-configuration-package
-
- %cgit-configuration-nginx
- cgit-configuration-nginx-config
-
- cgit-service-type
-
git-http-configuration
git-http-configuration?
git-http-nginx-location-configuration))
@@ -174,107 +154,6 @@ access to exported repositories under @file{/srv/git}."
;;;
-;;; Cgit
-;;;
-
-(define-record-type* <cgit-configuration-file>
- cgit-configuration-file
- make-cgit-configuration-file
- cgit-configuration-file?
- (css cgit-configuration-file-css ; string
- (default "/share/cgit/cgit.css"))
- (logo cgit-configuration-file-logo ; string
- (default "/share/cgit/cgit.png"))
- (robots cgit-configuration-file-robots ; list
- (default '("noindex" "nofollow")))
- (virtual-root cgit-configuration-file-virtual-root ; string
- (default "/"))
- (repository-directory cgit-configuration-file-repository-directory ; string
- (default "/srv/git")))
-
-(define (cgit-configuration-robots-string robots)
- (string-join robots ", "))
-
-(define-gexp-compiler (cgit-configuration-file-compiler
- (file <cgit-configuration-file>) system target)
- (match file
- (($ <cgit-configuration-file> css logo
- robots virtual-root repository-directory)
- (apply text-file* "cgitrc"
- (letrec-syntax ((option (syntax-rules ()
- ((_ key value)
- (if value
- `(,key "=" ,value "\n")
- '()))))
- (key/value (syntax-rules ()
- ((_ (key value) rest ...)
- (append (option key value)
- (key/value rest ...)))
- ((_)
- '()))))
- (key/value ("css" css)
- ("logo" logo)
- ("robots" (cgit-configuration-robots-string robots))
- ("virtual-root" virtual-root)
- ("scan-path" repository-directory)))))))
-
-(define %cgit-configuration-nginx
- (list
- (nginx-server-configuration
- (root cgit)
- (locations
- (list
- (nginx-location-configuration
- (uri "@cgit")
- (body '("fastcgi_param SCRIPT_FILENAME $document_root/lib/cgit/cgit.cgi;"
- "fastcgi_param PATH_INFO $uri;"
- "fastcgi_param QUERY_STRING $args;"
- "fastcgi_param HTTP_HOST $server_name;"
- "fastcgi_pass 127.0.0.1:9000;")))))
- (try-files (list "$uri" "@cgit"))
- (listen '("80"))
- (ssl-certificate #f)
- (ssl-certificate-key #f))))
-
-(define-record-type* <cgit-configuration>
- cgit-configuration make-cgit-configuration
- cgit-configuration?
- (config-file cgit-configuration-config-file
- (default (cgit-configuration-file)))
- (package cgit-configuration-package
- (default cgit))
- (nginx cgit-configuration-nginx
- (default %cgit-configuration-nginx)))
-
-(define (cgit-activation config)
- ;; Cgit compiled with default configuration path
- #~(begin
- (use-modules (guix build utils))
- (mkdir-p "/var/cache/cgit")
- (copy-file #$(cgit-configuration-config-file config) "/etc/cgitrc")))
-
-(define (cgit-configuration-nginx-config config)
- (cgit-configuration-nginx config))
-
-(define cgit-service-type
- (service-type
- (name 'cgit)
- (extensions
- (list (service-extension activation-service-type
- cgit-activation)
- (service-extension nginx-service-type
- cgit-configuration-nginx-config)
-
- ;; Make sure fcgiwrap is instantiated.
- (service-extension fcgiwrap-service-type
- (const #t))))
- (default-value (cgit-configuration))
- (description
- "Run the Cgit web interface, which allows users to browse Git
-repositories.")))
-
-
-;;;
;;; HTTP access. Add the result of calling
;;; git-http-nginx-location-configuration to an nginx-server-configuration's
;;; "locations" field.