diff --git a/Cargo.toml b/Cargo.toml index 0ef2e72..5faa4ba 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -5,3 +5,4 @@ edition = "2021" [dependencies] anyhow = "1.0" +regex = "1.10" diff --git a/src/main.rs b/src/main.rs index 445927f..2c01803 100644 --- a/src/main.rs +++ b/src/main.rs @@ -1,6 +1,27 @@ +use anyhow::Context; + fn main() -> anyhow::Result<()> { println!("Forgejo TODO Checker!"); + for (key, value) in std::env::vars() { + println!("{key}: {value}"); + } + + // let ci_repo = std::env::var("CI_REPO").context("CI_REPO")?; + let ci_repo_url = std::env::var("CI_REPO_URL").context("CI_REPO_URL")?; + let ci_forge_type = std::env::var("CI_FORGE_TYPE").context("CI_FORGE_TYPE")?; + + // optional arg for private repos + let repo_token = std::env::var("REPO_TOKEN").ok(); + + // Regex to match a todo or fixme comment + let prefix = regex::Regex::new(r"(#|//)\s*(TODO|FIXME)").context("prefix regex")?; + // Regex to match the rest of the line to find an issue number + let issue = + regex::Regex::new(r"( |)(\(|\(#)(?P\d+)(\))").context("issue regex")?; + + println!("[ci_repo:ci_repo][ci_repo_url:{ci_repo_url}][ci_forge_type:{ci_forge_type}][repo_token:{repo_token:?}][prefix:{prefix}][issue:{issue}]"); + // list files in current directory to get a feel for what we have access to std::fs::read_dir(".")? .filter_map(Result::ok)