add first ugly install command
This commit is contained in:
@@ -152,7 +152,53 @@ fn main() {
|
|||||||
let unit_folder = system_cmd.value_of(SYSTEMD_UNIT_FOLDER_ARGUMENT_NAME).unwrap();
|
let unit_folder = system_cmd.value_of(SYSTEMD_UNIT_FOLDER_ARGUMENT_NAME).unwrap();
|
||||||
let service_file= shellexpand::full(&format!("{}/{}", unit_folder, ide_service_name))
|
let service_file= shellexpand::full(&format!("{}/{}", unit_folder, ide_service_name))
|
||||||
.and_then(|v| Ok(String::from(v))).unwrap();
|
.and_then(|v| Ok(String::from(v))).unwrap();
|
||||||
fs::remove_file(&service_file).expect(format!("could remove service file {}", service_file).as_ref());
|
let clean_service_file= shellexpand::full(&format!("{}/clean-{}", unit_folder, ide_service_name))
|
||||||
|
.and_then(|v| Ok(String::from(v))).unwrap();
|
||||||
|
match system_cmd.subcommand() {
|
||||||
|
(UNINSTALL_SUBCOMMAND_NAME, _ ) => {
|
||||||
|
fs::remove_file(&service_file).expect(&format!("could remove service file {}", service_file));
|
||||||
|
fs::remove_file(&clean_service_file).expect(&format!("could remove service file {}", clean_service_file));
|
||||||
|
},
|
||||||
|
(INSTALL_SUBCOMMAND_NAME, Some(install_cmd)) => {
|
||||||
|
let force = install_cmd.is_present(FORCE_ARGUMENT_NAME);
|
||||||
|
let file = install_cmd.value_of(START_FILE_ARGUMENT_NAME).unwrap();
|
||||||
|
let args = install_cmd.value_of(START_ARGS_ARGUMENT_NAME).unwrap();
|
||||||
|
let create_service_script = format!("create_service_file.sh {}", ide_service_name);
|
||||||
|
|
||||||
|
let nix_expression = format!("with import <nixpkgs> {{}}; callPackage {} {}", file, args);
|
||||||
|
Command::new("nix-shell")
|
||||||
|
.stderr(Stdio::null())
|
||||||
|
.stdout(Stdio::null())
|
||||||
|
.arg("--expr")
|
||||||
|
.arg(nix_expression)
|
||||||
|
.arg("--pure")
|
||||||
|
.arg("--run")
|
||||||
|
.arg(create_service_script)
|
||||||
|
.output()
|
||||||
|
.expect("create service file failed");
|
||||||
|
|
||||||
|
let mut mv_cmd = Command::new("mv");
|
||||||
|
if force {
|
||||||
|
mv_cmd.arg("--force");
|
||||||
|
}
|
||||||
|
|
||||||
|
mv_cmd.arg(&format!("{}.service", ide_service_name))
|
||||||
|
.arg(service_file)
|
||||||
|
.output()
|
||||||
|
.expect("create service file failed");
|
||||||
|
|
||||||
|
mv_cmd = Command::new("mv");
|
||||||
|
if force {
|
||||||
|
mv_cmd.arg("--force");
|
||||||
|
}
|
||||||
|
mv_cmd.arg(&format!("clean-{}.service", ide_service_name))
|
||||||
|
.arg(clean_service_file)
|
||||||
|
.output()
|
||||||
|
.expect("create service file failed");
|
||||||
|
println!("{}", ide_service_name);
|
||||||
|
},
|
||||||
|
_ => {}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
_ => println!("-1")
|
_ => println!("-1")
|
||||||
};
|
};
|
||||||
|
|||||||
Reference in New Issue
Block a user