summaryrefslogtreecommitdiffstats
path: root/rust/wolfree_libredirect_patch/src/main.rs
diff options
context:
space:
mode:
authorname <email@example.com>2023-08-11 07:09:24 +0200
committername <email@example.com>2023-08-11 07:09:24 +0200
commitb6ebc5f88ffe9fb442238f160879ad47dd713d11 (patch)
treecbceadf88ea0fc58299b1efb6b43a0e8eeaf50bf /rust/wolfree_libredirect_patch/src/main.rs
downloadwolfree-dockerfile-b6ebc5f88ffe9fb442238f160879ad47dd713d11.tar
wolfree-dockerfile-b6ebc5f88ffe9fb442238f160879ad47dd713d11.tar.gz
wolfree-dockerfile-b6ebc5f88ffe9fb442238f160879ad47dd713d11.tar.bz2
wolfree-dockerfile-b6ebc5f88ffe9fb442238f160879ad47dd713d11.tar.lz
wolfree-dockerfile-b6ebc5f88ffe9fb442238f160879ad47dd713d11.tar.xz
wolfree-dockerfile-b6ebc5f88ffe9fb442238f160879ad47dd713d11.tar.zst
wolfree-dockerfile-b6ebc5f88ffe9fb442238f160879ad47dd713d11.zip
Diffstat (limited to '')
-rw-r--r--rust/wolfree_libredirect_patch/src/main.rs95
1 files changed, 95 insertions, 0 deletions
diff --git a/rust/wolfree_libredirect_patch/src/main.rs b/rust/wolfree_libredirect_patch/src/main.rs
new file mode 100644
index 0000000..65f1b93
--- /dev/null
+++ b/rust/wolfree_libredirect_patch/src/main.rs
@@ -0,0 +1,95 @@
+//! 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/");
+}