ordinary-config 0.11.1

Config for Ordinary
Documentation
// Copyright (C) 2026 The Ordinary Authors.
//
// SPDX-License-Identifier: BSD-3-Clause

#[cfg(feature = "docs")]
mod jsonschema;

fn main() -> anyhow::Result<()> {
    #[cfg(feature = "docs")]
    {
        let generated_dir = std::path::Path::new(env!("CARGO_MANIFEST_DIR")).join("generated");
        std::fs::create_dir_all(&generated_dir)?;

        let docs_dir = std::path::Path::new(env!("CARGO_MANIFEST_DIR")).join("docs");
        std::fs::create_dir_all(&docs_dir)?;

        let schema = schemars::schema_for!(ordinary_config::OrdinaryConfig);
        let json = serde_json::to_string_pretty(&schema)?;
        let markdown = jsonschema::to_markdown(&schema, "ordinary.json")?;

        fs_err::write(generated_dir.join("app.config.schema.json"), json)?;
        fs_err::write(docs_dir.join("app-config-reference.md"), markdown)?;

        let schema = schemars::schema_for!(ordinary_config::OrdinaryHostConfig);
        let json = serde_json::to_string_pretty(&schema)?;
        let markdown = jsonschema::to_markdown(&schema, "ordinaryd.json")?;

        fs_err::write(generated_dir.join("host.config.schema.json"), json)?;
        fs_err::write(docs_dir.join("host-config-reference.md"), markdown)?;
    }

    Ok(())
}