mirror of
https://github.com/jht5945/buildj.git
synced 2025-12-29 18:30:05 +08:00
add impl BuilderDesc
This commit is contained in:
11
src/main.rs
11
src/main.rs
@@ -282,17 +282,10 @@ fn main() {
|
|||||||
print_message(MessageType::OK, &format!("BUILDER_HOME = {}", &builder_desc.home));
|
print_message(MessageType::OK, &format!("BUILDER_HOME = {}", &builder_desc.home));
|
||||||
|
|
||||||
let mut new_env = get_env_with_java_home(&java_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_desc.get_builder_home_name(), builder_desc.home.clone());
|
||||||
new_env.insert(builder_home_env.to_string(), builder_desc.home.clone());
|
|
||||||
|
|
||||||
process_envs(&mut new_env, &build_json_object);
|
process_envs(&mut new_env, &build_json_object);
|
||||||
|
|
||||||
let cmd_bin = match builder_desc.name {
|
let mut cmd = Command::new(builder_desc.get_builder_bin());
|
||||||
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);
|
|
||||||
cmd.envs(&new_env);
|
cmd.envs(&new_env);
|
||||||
|
|
||||||
let final_args = match get_final_args(&args, &build_json_object) {
|
let final_args = match get_final_args(&args, &build_json_object) {
|
||||||
|
|||||||
21
src/tool.rs
21
src/tool.rs
@@ -34,6 +34,27 @@ pub struct BuilderDesc {
|
|||||||
pub bin: Option<String>,
|
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> {
|
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) {
|
let local_builder_home_base_dir = match get_user_home_dir(LOCAL_BUILDER_HOME_BASE_DIR) {
|
||||||
Err(_) => return None,
|
Err(_) => return None,
|
||||||
|
|||||||
Reference in New Issue
Block a user