treease-cli 1.2.4

Command-line interface for querying, transforming, and previewing structured documents with Treease
Documentation
use std::io::{self, Write};

use crate::args::{CliError, ParsedArgs};
use crate::{cli_io, web_payload, web_server};

pub(crate) fn run_web_command(parsed: &ParsedArgs) -> Result<i32, CliError> {
    let inputs = cli_io::input::read_inputs(&parsed.files)?;
    let payload = web_payload::build_cli_graph_result_payload(parsed, &inputs)?;
    let result = web_server::WebServerResult::text(
        payload.source_label,
        parsed.expression.clone(),
        payload.language,
        payload.text,
    );
    let server = web_server::WebServer::bind(result)?;

    let mut stdout = io::stdout();
    writeln!(stdout, "{}", server.editor_url())?;
    stdout.flush()?;

    server.serve_forever()?;
    Ok(0)
}