Commit 85cf744e authored by Ian Jackson's avatar Ian Jackson
Browse files

Move ApplicationConfig to arti crate

Code motion and import fixups.
parent 6986a433
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -51,7 +51,7 @@ mod cmdline;
mod options;

pub use cmdline::CmdLine;
pub use options::{ApplicationConfig, ApplicationConfigBuilder, ARTI_DEFAULTS};
pub use options::{ARTI_DEFAULTS};
use tor_config::CfgPath;

/// The synchronous configuration builder type we use.
+0 −29
Original line number Diff line number Diff line
//! Handling for arti's configuration formats.

use derive_builder::Builder;
use serde::Deserialize;
use tor_config::ConfigBuildError;

/// Default options to use for our configuration.
//
// TODO should this be in `arti::cfg` ?
pub const ARTI_DEFAULTS: &str = concat!(include_str!("./arti_defaults.toml"),);

/// Structure to hold our application configuration options
#[derive(Deserialize, Debug, Default, Clone, Builder, Eq, PartialEq)]
#[serde(deny_unknown_fields)]
#[builder(build_fn(error = "ConfigBuildError"))]
#[builder(derive(Deserialize))]
pub struct ApplicationConfig {
    /// If true, we should watch our configuration files for changes, and reload
    /// our configuration when they change.
    ///
    /// Note that this feature may behave in unexpected ways if the path to the
    /// directory holding our configuration files changes its identity (because
    /// an intermediate symlink is changed, because the directory is removed and
    /// recreated, or for some other reason).
    #[serde(default)]
    #[builder(default)]
    watch_configuration: bool,
}

impl ApplicationConfig {
    /// Return true if we're configured to watch for configuration changes.
    pub fn watch_configuration(&self) -> bool {
        self.watch_configuration
    }
}
+25 −1
Original line number Diff line number Diff line
@@ -9,11 +9,35 @@ use serde::Deserialize;

use arti_client::config::{SystemConfig, SystemConfigBuilder, TorClientConfigBuilder};
use arti_client::TorClientConfig;
use arti_config::{ApplicationConfig, ApplicationConfigBuilder};
use tor_config::ConfigBuildError;

use crate::{LoggingConfig, LoggingConfigBuilder};

/// Structure to hold our application configuration options
#[derive(Deserialize, Debug, Default, Clone, Builder, Eq, PartialEq)]
#[serde(deny_unknown_fields)]
#[builder(build_fn(error = "ConfigBuildError"))]
#[builder(derive(Deserialize))]
pub struct ApplicationConfig {
    /// If true, we should watch our configuration files for changes, and reload
    /// our configuration when they change.
    ///
    /// Note that this feature may behave in unexpected ways if the path to the
    /// directory holding our configuration files changes its identity (because
    /// an intermediate symlink is changed, because the directory is removed and
    /// recreated, or for some other reason).
    #[serde(default)]
    #[builder(default)]
    watch_configuration: bool,
}

impl ApplicationConfig {
    /// Return true if we're configured to watch for configuration changes.
    pub fn watch_configuration(&self) -> bool {
        self.watch_configuration
    }
}

/// Configuration for one or more proxy listeners.
#[derive(Deserialize, Debug, Clone, Builder, Eq, PartialEq)]
#[serde(deny_unknown_fields)]
+1 −1
Original line number Diff line number Diff line
@@ -122,7 +122,7 @@ pub mod process;
pub mod socks;
pub mod watch_cfg;

pub use cfg::{ArtiConfig, ArtiConfigBuilder, ProxyConfig, ProxyConfigBuilder};
pub use cfg::{ArtiConfig, ArtiConfigBuilder, ApplicationConfig, ApplicationConfigBuilder, ProxyConfig, ProxyConfigBuilder};
pub use logging::{LoggingConfig, LoggingConfigBuilder};

use arti_client::{TorClient, TorClientConfig};