feat: --config
flag
Signed-off-by: Christina Sørensen <christina@cafkafk.com>
This commit is contained in:
parent
4f5e6159fe
commit
661e8b1cad
3 changed files with 13 additions and 6 deletions
|
@ -27,7 +27,7 @@ pub fn build_cli() -> Command {
|
||||||
.arg(
|
.arg(
|
||||||
arg!(-c --config <FILE> "Path to NixOS config.")
|
arg!(-c --config <FILE> "Path to NixOS config.")
|
||||||
.required(false)
|
.required(false)
|
||||||
.value_parser(value_parser!(PathBuf)),
|
.value_parser(value_parser!(String)),
|
||||||
)
|
)
|
||||||
.arg(
|
.arg(
|
||||||
arg!(--timestamp "Add timestamp to log output.")
|
arg!(--timestamp "Add timestamp to log output.")
|
||||||
|
|
11
src/main.rs
11
src/main.rs
|
@ -24,6 +24,7 @@ mod nix;
|
||||||
const SLIDE: u64 = 100;
|
const SLIDE: u64 = 100;
|
||||||
|
|
||||||
const DEFAULT_CACHE: &str = "cache.nixos.org";
|
const DEFAULT_CACHE: &str = "cache.nixos.org";
|
||||||
|
const DEFAULT_CONFIG_DIR: &str = "/etc/nixos";
|
||||||
|
|
||||||
#[tokio::main(flavor = "multi_thread")]
|
#[tokio::main(flavor = "multi_thread")]
|
||||||
async fn main() -> io::Result<()> {
|
async fn main() -> io::Result<()> {
|
||||||
|
@ -31,6 +32,7 @@ async fn main() -> io::Result<()> {
|
||||||
|
|
||||||
let host_name: String;
|
let host_name: String;
|
||||||
let cache_url: String;
|
let cache_url: String;
|
||||||
|
let config_dir: String;
|
||||||
|
|
||||||
let matches = cli::build_cli().get_matches();
|
let matches = cli::build_cli().get_matches();
|
||||||
|
|
||||||
|
@ -50,7 +52,6 @@ async fn main() -> io::Result<()> {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
//pretty_env_logger::init();
|
|
||||||
if matches.get_flag("timestamp") {
|
if matches.get_flag("timestamp") {
|
||||||
pretty_env_logger::formatted_timed_builder()
|
pretty_env_logger::formatted_timed_builder()
|
||||||
.parse_env("RUST_LOG")
|
.parse_env("RUST_LOG")
|
||||||
|
@ -73,6 +74,12 @@ async fn main() -> io::Result<()> {
|
||||||
cache_url = DEFAULT_CACHE.to_string();
|
cache_url = DEFAULT_CACHE.to_string();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if let Some(config) = matches.get_one::<String>("config") {
|
||||||
|
config_dir = config.to_owned();
|
||||||
|
} else {
|
||||||
|
config_dir = DEFAULT_CONFIG_DIR.to_string();
|
||||||
|
}
|
||||||
|
|
||||||
let domain = cache_url.to_owned();
|
let domain = cache_url.to_owned();
|
||||||
let ips: Vec<std::net::IpAddr> = lookup_host(&domain).unwrap();
|
let ips: Vec<std::net::IpAddr> = lookup_host(&domain).unwrap();
|
||||||
|
|
||||||
|
@ -85,7 +92,7 @@ async fn main() -> io::Result<()> {
|
||||||
.build()
|
.build()
|
||||||
.unwrap();
|
.unwrap();
|
||||||
|
|
||||||
let binding = get_requisites(&host_name);
|
let binding = get_requisites(&host_name, &config_dir);
|
||||||
|
|
||||||
let get_requisites_duration = initial_time.elapsed().as_secs();
|
let get_requisites_duration = initial_time.elapsed().as_secs();
|
||||||
|
|
||||||
|
|
|
@ -4,10 +4,10 @@ use std::{
|
||||||
process::{Command, Stdio},
|
process::{Command, Stdio},
|
||||||
};
|
};
|
||||||
|
|
||||||
pub fn get_requisites(host: &str) -> String {
|
pub fn get_requisites(host: &str, config_dir: &str) -> String {
|
||||||
let get_drv_path = Command::new("nix")
|
let get_drv_path = Command::new("nix")
|
||||||
.current_dir(Path::new("/home/ces/org/src/git/afk-nixos"))
|
.current_dir(Path::new(config_dir))
|
||||||
.env("NIXPKGS_ALLOW_INSECURE", "1")
|
.env("NIXPKGS_ALLOW_INSECURE", "1") // FIXME Idk but fix it
|
||||||
.args([
|
.args([
|
||||||
"build",
|
"build",
|
||||||
"--impure",
|
"--impure",
|
||||||
|
|
Loading…
Reference in a new issue