summary refs log tree commit diff stats
path: root/pkgs/by-name/ba/back/src/main.rs
diff options
context:
space:
mode:
authorBenedikt Peetz <benedikt.peetz@b-peetz.de>2024-12-24 10:52:34 +0100
committerBenedikt Peetz <benedikt.peetz@b-peetz.de>2024-12-24 10:52:34 +0100
commit4802f7a68d515d78ae25988410d62c5dc1f8c8f4 (patch)
tree98de946773fb0073b3afc1144c8d64fbedcfecc7 /pkgs/by-name/ba/back/src/main.rs
parentfeat(hosts/server1): Configure back for the `nixos-server` repo (diff)
downloadnixos-server-4802f7a68d515d78ae25988410d62c5dc1f8c8f4.tar.gz
nixos-server-4802f7a68d515d78ae25988410d62c5dc1f8c8f4.zip
feat(pkgs/back): Add a link to the source code
This is required by the AGPL license and should probably also be done,
because we do not have a reason to hide or obfuscate the code.
Diffstat (limited to 'pkgs/by-name/ba/back/src/main.rs')
-rw-r--r--pkgs/by-name/ba/back/src/main.rs21
1 files changed, 21 insertions, 0 deletions
diff --git a/pkgs/by-name/ba/back/src/main.rs b/pkgs/by-name/ba/back/src/main.rs
index d0b0f81..86fe196 100644
--- a/pkgs/by-name/ba/back/src/main.rs
+++ b/pkgs/by-name/ba/back/src/main.rs
@@ -13,12 +13,14 @@ use std::{env::args, path::PathBuf, process, sync::OnceLock};
 
 use gix::ThreadSafeRepository;
 use rocket::{launch, routes};
+use url::Url;
 
 use crate::issues::{closed, open, show_issue, styles};
 
 mod issues;
 
 static REPOSITORY: OnceLock<ThreadSafeRepository> = OnceLock::new();
+static SOURCE_CODE_REPOSITORY: OnceLock<Url> = OnceLock::new();
 
 #[launch]
 fn rocket() -> _ {
@@ -31,6 +33,25 @@ fn rocket() -> _ {
             process::exit(1);
         }
     };
+    let source_code_url = {
+        match std::env::var("BACK_SOURCE_CODE_REPOSITORY_URL") {
+            Ok(value) => match Url::parse(&value) {
+                Ok(url) => url,
+                Err(err) => {
+                    eprintln!("Can't parse `BACK_SOURCE_CODE_REPOSITORY_URL` value as url: {err}");
+                    process::exit(1);
+                }
+            },
+            Err(err) => {
+                eprintln!("back needs you to specify a source code repositiory as `BACK_SOURCE_CODE_REPOSITORY_URL`: {err}");
+                process::exit(1);
+            }
+        }
+    };
+
+    SOURCE_CODE_REPOSITORY
+        .set(source_code_url)
+        .expect("This should be unset by this stage");
 
     REPOSITORY
         .set(