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 service_file= shellexpand::full(&format!("{}/{}", unit_folder, ide_service_name))
|
||||
.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")
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user