1
0
mirror of https://github.com/jht5945/buildj.git synced 2025-12-27 17:20:06 +08:00

add impl BuilderDesc

This commit is contained in:
2019-08-10 17:35:43 +08:00
parent 10f9a88e1b
commit d6caa137e3
2 changed files with 23 additions and 9 deletions

View File

@@ -282,17 +282,10 @@ fn main() {
print_message(MessageType::OK, &format!("BUILDER_HOME = {}", &builder_desc.home));
let mut new_env = get_env_with_java_home(&java_home);
let builder_home_env = match builder_desc.name { BuilderName::Maven => "MAVEN_HOME", BuilderName::Gradle => "GRADLE_HOME", };
new_env.insert(builder_home_env.to_string(), builder_desc.home.clone());
new_env.insert(builder_desc.get_builder_home_name(), builder_desc.home.clone());
process_envs(&mut new_env, &build_json_object);
let cmd_bin = match builder_desc.name {
BuilderName::Maven => builder_desc.bin.unwrap_or(format!("{}/bin/mvn", builder_desc.home.clone())),
BuilderName::Gradle => builder_desc.bin.unwrap_or(format!("{}/bin/gradle", builder_desc.home.clone())),
};
let mut cmd = Command::new(cmd_bin);
let mut cmd = Command::new(builder_desc.get_builder_bin());
cmd.envs(&new_env);
let final_args = match get_final_args(&args, &build_json_object) {

View File

@@ -34,6 +34,27 @@ pub struct BuilderDesc {
pub bin: Option<String>,
}
impl BuilderDesc {
pub fn get_builder_home_name(&self) -> String {
match self.name {
BuilderName::Maven => "MAVEN_HOME".to_string(),
BuilderName::Gradle => "GRADLE_HOME".to_string(),
}
}
pub fn get_builder_bin(&self) -> String {
match &self.bin {
Some(b) => b.clone(),
None => {
match self.name {
BuilderName::Maven => format!("{}/bin/mvn", self.home.clone()),
BuilderName::Gradle => format!("{}/bin/gradle", self.home.clone()),
}
}
}
}
}
pub fn get_builder_home(builder: &str, version: &str) -> Option<BuilderDesc> {
let local_builder_home_base_dir = match get_user_home_dir(LOCAL_BUILDER_HOME_BASE_DIR) {
Err(_) => return None,