added util binary for generating default config file. also adding generated config file

This commit is contained in:
2025-11-13 12:24:02 +01:00
parent 1f2d9e4363
commit 904d9ccb28
6 changed files with 1644 additions and 1037 deletions

2626
Cargo.lock generated

File diff suppressed because it is too large Load Diff

View File

@@ -6,6 +6,16 @@ description = "cli for building and publishing documentation using asciidoctor"
license-file = "LICENSE.txt"
authors = ["Quirin Ecker"]
exclude = [".gitlab", ".github"]
default-run = "docki"
[[bin]]
name = "docki"
path = "src/main.rs"
[[bin]]
name = "util"
path = "src/util.rs"
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
@@ -25,3 +35,4 @@ clap_complete = "4.1.4"
nu-ansi-term = "0.50.3"
config = { version = "0.15.18", features = ["toml"] }
serde = "1.0.228"
toml = "0.9.6"

4
config/docki.config.toml Normal file
View File

@@ -0,0 +1,4 @@
port = 8080
input_dir = "./docs"
offline_reveal = false
output_dir = "./dist"

View File

@@ -1,8 +1,8 @@
use serde::Deserialize;
use serde::{Deserialize, Serialize};
use crate::app::config::arguments::CommandArg;
#[derive(Deserialize, Debug)]
#[derive(Deserialize, Debug, Serialize)]
#[serde(default)]
pub struct Config {
pub port: u16,

View File

@@ -3,7 +3,7 @@ pub mod build;
pub mod fs_util;
pub mod watcher;
pub mod log;
mod config;
pub mod config;
use std::env;

34
src/util.rs Normal file
View File

@@ -0,0 +1,34 @@
mod app;
use std::{fs::File, io::Write};
use app::config::config::Config;
use clap::{Parser, Subcommand};
#[derive(Parser)]
pub struct Args {
#[command(subcommand)]
pub command: CommandArg,
}
#[derive(Subcommand)]
pub enum CommandArg {
/// Generates a default docki.config.toml
GenerateDefaultConfig,
}
fn main() {
let args = Args::parse();
match args.command {
CommandArg::GenerateDefaultConfig => generate_default_config(),
}
}
fn generate_default_config() {
let default_config = Config::default();
let target_file = "config/docki.config.toml";
let mut file = File::create(target_file).unwrap();
let output = toml::to_string_pretty(&default_config).unwrap();
file.write_all(output.as_bytes()).unwrap();
}