From 4bcadcd2244989a8bb7d8dffdaf11f131b96c8ff Mon Sep 17 00:00:00 2001 From: Benedikt Peetz Date: Mon, 23 Dec 2024 18:29:35 +0100 Subject: feat(pkgs/back): Init Other options, for example `git-bug webui --read-only` is just to bugged to be useful. --- pkgs/by-name/ba/back/src/main.rs | 49 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 49 insertions(+) create mode 100644 pkgs/by-name/ba/back/src/main.rs (limited to 'pkgs/by-name/ba/back/src/main.rs') diff --git a/pkgs/by-name/ba/back/src/main.rs b/pkgs/by-name/ba/back/src/main.rs new file mode 100644 index 0000000..d0b0f81 --- /dev/null +++ b/pkgs/by-name/ba/back/src/main.rs @@ -0,0 +1,49 @@ +// Back - An extremely simple git issue tracking system. Inspired by tvix's +// panettone +// +// Copyright (C) 2024 Benedikt Peetz +// SPDX-License-Identifier: AGPL-3.0-or-later +// +// This file is part of Back. +// +// You should have received a copy of the License along with this program. +// If not, see . + +use std::{env::args, path::PathBuf, process, sync::OnceLock}; + +use gix::ThreadSafeRepository; +use rocket::{launch, routes}; + +use crate::issues::{closed, open, show_issue, styles}; + +mod issues; + +static REPOSITORY: OnceLock = OnceLock::new(); + +#[launch] +fn rocket() -> _ { + let repository_path = { + let maybe_path = args().skip(1).rev().last(); + if let Some(path) = maybe_path { + PathBuf::from(path) + } else { + eprintln!("Usage: back "); + process::exit(1); + } + }; + + REPOSITORY + .set( + ThreadSafeRepository::open(&repository_path).unwrap_or_else(|err| { + eprintln!( + "Error while opening repository ('{}'): {} ", + repository_path.display(), + err + ); + process::exit(1); + }), + ) + .expect("There should be only one thread accessing this right now"); + + rocket::build().mount("/", routes![open, closed, show_issue, styles]) +} -- cgit 1.4.1