main.rs 1.1 KB

12345678910111213141516171819202122232425262728293031323334
  1. use std::env;
  2. use mock_anthropic_service::MockAnthropicService;
  3. #[tokio::main(flavor = "multi_thread")]
  4. async fn main() -> Result<(), Box<dyn std::error::Error>> {
  5. let mut bind_addr = String::from("127.0.0.1:0");
  6. let mut args = env::args().skip(1);
  7. while let Some(arg) = args.next() {
  8. match arg.as_str() {
  9. "--bind" => {
  10. bind_addr = args
  11. .next()
  12. .ok_or_else(|| "missing value for --bind".to_string())?;
  13. }
  14. flag if flag.starts_with("--bind=") => {
  15. bind_addr = flag[7..].to_string();
  16. }
  17. "--help" | "-h" => {
  18. println!("Usage: mock-anthropic-service [--bind HOST:PORT]");
  19. return Ok(());
  20. }
  21. other => {
  22. return Err(format!("unsupported argument: {other}").into());
  23. }
  24. }
  25. }
  26. let server = MockAnthropicService::spawn_on(&bind_addr).await?;
  27. println!("MOCK_ANTHROPIC_BASE_URL={}", server.base_url());
  28. tokio::signal::ctrl_c().await?;
  29. drop(server);
  30. Ok(())
  31. }