summaryrefslogtreecommitdiffstats
path: root/rust/wolfree_patch_libredirect/src/main.rs
diff options
context:
space:
mode:
Diffstat (limited to 'rust/wolfree_patch_libredirect/src/main.rs')
-rw-r--r--rust/wolfree_patch_libredirect/src/main.rs40
1 files changed, 40 insertions, 0 deletions
diff --git a/rust/wolfree_patch_libredirect/src/main.rs b/rust/wolfree_patch_libredirect/src/main.rs
new file mode 100644
index 0000000..907dc36
--- /dev/null
+++ b/rust/wolfree_patch_libredirect/src/main.rs
@@ -0,0 +1,40 @@
+/* SPDX-License-Identifier: AGPL-3.0-or-later */
+
+//! Customize Wolfree instances to suit Libredirect.
+
+#![allow(clippy::blanket_clippy_restriction_lints)]
+#![allow(clippy::implicit_return)]
+#![allow(clippy::question_mark_used)]
+
+use std::error;
+use std::fs;
+
+/// By default, the main function do nothing as most Wolfree users do not use Libredirect.
+#[allow(unreachable_code)]
+fn main() -> Result<(), Box<dyn error::Error>> {
+ // Remove the following line to make the instances Libredirect-compatible.
+ return Ok(());
+ // Remove the previous line to make the instances Libredirect-compatible.
+
+ // Disable the entrypoint of the JavaScript modules.
+ fs::write(
+ "./docusaurus/static/ajax/libs/wolfree/2023.8.31/js/entrypoint.js",
+ "export default () => {};"
+ )?;
+
+ fs::write(
+ "./docusaurus/wolfree.config.js",
+ "module.exports = { config: { libredirect: true } };"
+ )?;
+
+ fs::write(
+ "./docusaurus/static/instances.json",
+ include_str!("./docusaurus/static/instances.json")
+ )?;
+
+ fs::write("./docusaurus/docs/index.mdx", include_str!("./docusaurus/docs/index.mdx"))?;
+ fs::write("./docusaurus/docs/mirror.mdx", include_str!("./docusaurus/docs/mirror.mdx"))?;
+ fs::write("./docusaurus/docs/source.mdx", include_str!("./docusaurus/docs/source.mdx"))?;
+
+ Ok(())
+}