wolfree-dockerfile/rust/wolfree_libredirect_patch/src/main.rs

96 lines
3.1 KiB
Rust

//! The Rust crate provides lightweight wrappers around the `fs::write` and `fs::remove_dir_all` functions from the standard library's `fs` module.
//! The crate is designed to simplify file writing and directory removal operations by encapsulating the error handling logic and providing a more convenient interface.
//! It is particularly useful for tasks that involve writing multiple files or removing directories with their contents.
#![allow(clippy::blanket_clippy_restriction_lints)]
#![allow(clippy::exit)]
#![allow(clippy::print_stderr)]
#![allow(clippy::implicit_return)]
/* SPDX-License-Identifier: AGPL-3.0-or-later
* This file is part of Wolfree.
* This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
*/
use markdown::to_html_with_options;
use markdown::Options;
use std::fs;
/// A lightweight wrapper around `fs::write`.
fn wolfree_write(file_path: &str, contents: &str) {
match fs::write(file_path, contents) {
Ok(_) => (),
Err(err) => {
eprintln!("Error: {err}",);
std::process::exit(1);
}
};
}
/// A lightweight wrapper around `fs::remove_dir_all`.
fn wolfree_remove_dir_all(dir_path: &str) {
match fs::remove_dir_all(dir_path) {
Ok(_) => (),
Err(err) => {
eprintln!("Error: {err}",);
std::process::exit(1);
}
};
}
/// A lightweight wrapper around `markdown::to_html_with_options`.
fn wolfree_to_html_with_options(value: &str) -> String {
match to_html_with_options(value, &Options::gfm()) {
Ok(result) => result,
Err(err) => {
eprintln!("Error: {err}",);
std::process::exit(1);
}
}
}
/// Entry point of the program.
fn main() {
wolfree_write(
"./docusaurus/build/ajax/libs/wolfree/23.7.8/js/Entrypoint.js",
"export default () => {}",
);
wolfree_write(
"./docusaurus/build/index.html",
&format!(
"{}{}",
include_str!("head.html"),
wolfree_to_html_with_options(include_str!("body.md")),
),
);
wolfree_write(
"./docusaurus/build/instances.json",
include_str!("instances.json"),
);
wolfree_write(
"./docusaurus/build/404.html",
"<script>location='/'</script>",
);
wolfree_write(
"./docusaurus/build/acknowledgment/index.html",
"<script>location='/'</script>",
);
wolfree_write(
"./docusaurus/build/community/index.html",
"<script>location='/'</script>",
);
wolfree_write(
"./docusaurus/build/dmca/index.html",
"<script>location='/'</script>",
);
wolfree_write(
"./docusaurus/build/mirror/index.html",
"<script>location='/'</script>",
);
wolfree_write(
"./docusaurus/build/source/index.html",
"<script>location='/'</script>",
);
wolfree_remove_dir_all("./docusaurus/build/assets/");
}