blob: e07ff282360350ae33c98bb936a8874a58e88361 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
|
use std::process::exit;
use clap::Parser;
use crate::cli::{Cli, CliCommand};
use crate::config::{Config, ConfigLoadError};
use crate::dots::{deploy_dots, unlink_dots};
mod config;
mod cli;
mod dots;
fn main() {
let cli = Cli::parse();
let config = Config::load(cli.config).map_err(|err|
match err {
ConfigLoadError::IOError(err) => {
eprintln!("failed to load config file: {}", err);
exit(1)
}
ConfigLoadError::DeserializationError(err) => {
eprintln!("failed to deserialize config file: {}", err);
exit(1)
}
}
).unwrap();
match cli.command {
CliCommand::Deploy => deploy_dots(config.dots, config.dots_dir, cli.no_hostname_check),
CliCommand::Unlink => unlink_dots(config.dots, config.dots_dir, cli.no_hostname_check),
}
}
|