shucker 0.1.0

Tracking-param filtering library, designed to strip URLs down to their canonical forms
Documentation
use itertools::join;
use std::{fs, path::Path};

fn main() {
    let sources = vec![
        "external/adguardfilters/TrackParamFilter/sections/allowlist.txt",
        "external/adguardfilters/TrackParamFilter/sections/general_url.txt",
        "external/adguardfilters/TrackParamFilter/sections/specific.txt",
    ];
    println!("Rebuilding...");
    let all_data = format!(
        "! Content reused from https://github.com/AdguardTeam/AdguardFilters under GPLv3\n!\n{}",
        join(
            sources
                .iter()
                .map(|p| format!("! Content from {p}\n{}", fs::read_to_string(p).unwrap())),
            "\n",
        )
    );
    let rules_path = Path::new("src/rules.txt");
    let existing_rules = fs::read_to_string(rules_path).unwrap();
    if existing_rules != all_data {
        println!("Writing changes");
        fs::write(rules_path, all_data).unwrap();
    }
    println!("Rebuilt");
}