envhub_hm/
init.rs

1use std::process::{Command, Stdio};
2
3use anyhow::Error;
4
5use crate::nix;
6
7pub fn home_manager_init() -> Result<(), Error> {
8    nix::install()?;
9    let mut child = Command::new("sh")
10        .arg("-c")
11        .arg("[ ! -d ~/.envhub/home-manager ] && nix run home-manager/master -- init ~/.envhub/home-manager")
12        .stdin(Stdio::inherit())
13        .stdout(Stdio::inherit())
14        .stderr(Stdio::inherit())
15        .spawn()?;
16
17    child.wait()?;
18
19    Ok(())
20}