Split dependencies that are only used for the binary version of onetun

This commit is contained in:
Aram 🍐 2022-06-24 01:45:31 -04:00
parent 1c1399d5ff
commit f85692950f
3 changed files with 17 additions and 4 deletions

View file

@ -10,15 +10,23 @@ repository = "https://github.com/aramperes/onetun"
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
[dependencies]
# Required dependencies (bin and lib)
boringtun = { version = "0.4.0", default-features = false }
clap = { version = "2.33", default-features = false, features = ["suggestions"] }
log = "0.4"
pretty_env_logger = "0.4"
anyhow = "1"
smoltcp = { version = "0.8.0", default-features = false, features = ["std", "log", "medium-ip", "proto-ipv4", "proto-ipv6", "socket-udp", "socket-tcp"] }
tokio = { version = "1", features = ["full"] }
futures = "0.3.17"
rand = "0.8.4"
nom = "7"
async-trait = "0.1.51"
priority-queue = "1.2.0"
smoltcp = { version = "0.8.0", default-features = false, features = ["std", "log", "medium-ip", "proto-ipv4", "proto-ipv6", "socket-udp", "socket-tcp"] }
# bin-only dependencies
clap = { version = "2.33", default-features = false, features = ["suggestions"], optional = true }
pretty_env_logger = { version = "0.4", optional = true }
[features]
pcap = []
default = [ "bin" ]
bin = [ "clap", "pretty_env_logger", "pcap" ]

View file

@ -7,7 +7,6 @@ use std::sync::Arc;
use anyhow::Context;
use boringtun::crypto::{X25519PublicKey, X25519SecretKey};
use clap::{App, Arg};
const DEFAULT_PORT_FORWARD_SOURCE: &str = "127.0.0.1";
@ -29,7 +28,10 @@ pub struct Config {
}
impl Config {
#[cfg(feature = "bin")]
pub fn from_args() -> anyhow::Result<Self> {
use clap::{App, Arg};
let mut warnings = vec![];
let matches = App::new("onetun")

View file

@ -17,12 +17,14 @@ use crate::wg::WireGuardTunnel;
pub mod config;
pub mod events;
#[cfg(feature = "pcap")]
pub mod pcap;
pub mod tunnel;
pub mod virtual_device;
pub mod virtual_iface;
pub mod wg;
#[cfg(feature = "bin")]
#[tokio::main]
async fn main() -> anyhow::Result<()> {
let config = Config::from_args().with_context(|| "Failed to read config")?;
@ -126,6 +128,7 @@ async fn main() -> anyhow::Result<()> {
futures::future::pending().await
}
#[cfg(feature = "bin")]
fn init_logger(config: &Config) -> anyhow::Result<()> {
let mut builder = pretty_env_logger::formatted_timed_builder();
builder.parse_filters(&config.log);