diff options
| author | Arun Isaac | 2025-11-04 02:06:40 +0000 |
|---|---|---|
| committer | Arun Isaac | 2025-11-04 02:10:13 +0000 |
| commit | de8d5a774b96976c0ed3ed529870f89fd1b4a9aa (patch) | |
| tree | 1398ed710c6b1bab3e8e6bb81eff78d9499654d8 /guix/forge | |
| parent | 5bc683811249adaaccad7ad825ab22273bc61f6c (diff) | |
| download | guix-forge-de8d5a774b96976c0ed3ed529870f89fd1b4a9aa.tar.gz guix-forge-de8d5a774b96976c0ed3ed529870f89fd1b4a9aa.tar.lz guix-forge-de8d5a774b96976c0ed3ed529870f89fd1b4a9aa.zip | |
forge: Move project websites under single forge website directory.
Diffstat (limited to 'guix/forge')
| -rw-r--r-- | guix/forge/forge.scm | 42 |
1 files changed, 20 insertions, 22 deletions
diff --git a/guix/forge/forge.scm b/guix/forge/forge.scm index 20d534c..31728dc 100644 --- a/guix/forge/forge.scm +++ b/guix/forge/forge.scm @@ -51,6 +51,7 @@ forge-configuration? forge-configuration-web-domain forge-configuration-tissue-web-domain + forge-configuration-websites-directory forge-configuration-web-root forge-configuration-projects forge-project @@ -61,7 +62,6 @@ forge-project-repository forge-project-repository-branch forge-project-web-domain - forge-project-website-directory forge-project-tissue? forge-project-ci-jobs forge-project-ci-jobs-trigger @@ -89,8 +89,6 @@ (default #f)) (web-domain forge-project-web-domain (default #f)) - (website-directory forge-project-website-directory - (default #f)) (tissue? forge-project-tissue? (default #f)) (ci-jobs forge-project-ci-jobs @@ -113,6 +111,8 @@ (web-domain forge-configuration-web-domain) (tissue-web-domain forge-configuration-tissue-web-domain (default #f)) + (websites-directory forge-configuration-websites-directory + (default "/srv/http/forge")) (web-root forge-configuration-web-root (default (computed-file "forge-web-root" (forge-web-root-gexp this-forge-configuration))) @@ -185,7 +185,6 @@ (list (forge-project-user project) (forge-project-repository project) (forge-project-description project) - (forge-project-website-directory project) (program-file (string-append (forge-project-name project) "-post-receive-hook") @@ -205,8 +204,14 @@ '(regular directory))) #:directories? #t)) + ;; Set ownership of forge websites directory. + (let ((user (getpw "laminar"))) + (chown websites-directory + (passwd:uid user) + (passwd:gid user))) + (for-each (match-lambda - ((username repository description website-directory ci-jobs-trigger ci-jobs-trigger-type) + ((username repository description ci-jobs-trigger ci-jobs-trigger-type) ;; For local repositories only (when (string-prefix? "/" repository) ;; Set description. @@ -228,12 +233,7 @@ (let ((hook-link (string-append repository "/hooks/post-receive"))) (when (file-exists? hook-link) (delete-file hook-link)) - (symlink ci-jobs-trigger hook-link))) - ;; Set ownership of website directory. - (when website-directory - (let ((user (getpw "laminar"))) - (chown (dirname website-directory) - (passwd:uid user) (passwd:gid user)))))) + (symlink ci-jobs-trigger hook-link))))) '#$projects)))) (define (import-module? name) @@ -492,29 +492,27 @@ forge configuration @var{config}." (server-name (list (forge-configuration-web-domain config))) (root (forge-configuration-web-root config)) (locations - ;; Configure location blocks for projects that have a website - ;; directory but no web domain. + ;; Configure location blocks for projects that have no web domain. (filter-map (lambda (project) (match-record project <forge-project> - (name web-domain website-directory) + (name web-domain) (and (not web-domain) - website-directory (nginx-location-configuration (uri (string-append "/" name "/")) (body - (list (string-append "alias " - (file-name-as-directory website-directory) + (list (string-append "root " + (forge-configuration-websites-directory config) ";"))))))) (forge-configuration-projects config)))) - ;; Configure nginx server blocks for projects that have a web domain and - ;; a website directory. + ;; Configure nginx server blocks for projects that have a web domain. (filter-map (match-record-lambda <forge-project> - (web-domain website-directory) + (name web-domain) (and web-domain - website-directory (nginx-server-configuration (server-name (list web-domain)) - (root website-directory)))) + (root (string-append (forge-configuration-websites-directory config) + "/" + name))))) (forge-configuration-projects config)))) (define (forge-tissue-hosts config) |
