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)
}