use std::collections::HashMap;
use super::pgp::SigLevel;
#[derive(Debug)]
pub struct Config {
pub root_dir: String,
pub db_path: String,
pub cache_dirs: Vec<String>,
pub log_file: String,
pub gpg_dir: String,
pub hook_dirs: Vec<String>,
pub hold_pkg: Vec<String>,
pub transfer_command: Option<String>,
pub use_delta: f32,
pub arch: String,
pub ignore_pkg: Vec<String>,
pub ignore_group: Vec<String>,
pub no_upgrade: Vec<String>,
pub no_extract: Vec<String>,
pub use_syslog: bool,
pub color: bool,
pub total_download: bool,
pub check_space: bool,
pub verbose_pkg_lists: bool,
pub sig_level: SigLevel,
pub repositories: HashMap<String, RepoConfig>,
}
impl Default for Config {
fn default() -> Config {
Config {
root_dir: "/".into(),
db_path: "/var/lib/pacman/".into(),
cache_dirs: vec!["/var/cache/pacman/pkg/".into()],
log_file: "/var/log/pacman.log".into(),
gpg_dir: "/etc/pacman.d/gnupg/".into(),
hook_dirs: vec!["/etc/pacman.d/hooks/".into()],
hold_pkg: vec![],
transfer_command: None,
use_delta: 0.7,
arch: "auto".into(),
ignore_pkg: vec![],
ignore_group: vec![],
no_upgrade: vec![],
no_extract: vec![],
use_syslog: false,
color: false,
total_download: false,
check_space: true,
verbose_pkg_lists: false,
sig_level: SigLevel::default(),
repositories: HashMap::new(),
}
}
}
#[derive(Debug, Default)]
pub struct RepoConfig {
pub servers: Vec<String>,
pub sig_level: Option<SigLevel>,
}
impl RepoConfig {
pub fn new(servers: Vec<String>) -> RepoConfig {
RepoConfig { servers, sig_level: None }
}
}