| // Copyright 2023 The Fuchsia Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| fn main() -> std::process::ExitCode { |
| let binary = std::env::args().next().expect("missing first argument"); |
| let binary = std::path::Path::new(&binary) |
| .file_name() |
| .expect("missing binary file name") |
| .to_str() |
| .expect("failed to get file name str"); |
| match binary { |
| "dhcp_client" => { |
| dhcp_client::main(); |
| std::process::ExitCode::SUCCESS |
| } |
| "dhcpv4_server" => dhcpv4_server::main(), |
| "dhcpv6_client" => dhcpv6_client::main(), |
| "dns_resolver" => dns_resolver::main(), |
| "http_client" => http_client::main(), |
| "netcfg_basic" => { |
| netcfg_basic::main(); |
| std::process::ExitCode::SUCCESS |
| } |
| "netstack_proxy" => { |
| netstack_proxy::main(); |
| std::process::ExitCode::SUCCESS |
| } |
| "netstack3" => { |
| netstack3::main(); |
| std::process::ExitCode::SUCCESS |
| } |
| "reachability" => { |
| reachability::main(); |
| std::process::ExitCode::SUCCESS |
| } |
| "stack_migration" => { |
| stack_migration::main(); |
| std::process::ExitCode::SUCCESS |
| } |
| x => panic!("unknown binary {x}"), |
| } |
| } |