crossbundle_tools/commands/android/gradle/
gradle_init.rs

1use crate::error::{AndroidError, Result};
2use std::process::Command;
3
4/// Find gradle executable file in and initialize it
5pub fn gradle_init() -> Result<Command> {
6    if let Ok(gradle) = which::which(bat!("gradle")) {
7        return Ok(Command::new(gradle));
8    }
9    let gradle = std::env::var("GRADLE_HOME").ok();
10    let gradle_path = std::path::PathBuf::from(gradle.ok_or(AndroidError::GradleNotFound)?);
11    let gradle_executable = gradle_path.join("bin").join(bat!("gradle"));
12    Ok(Command::new(gradle_executable))
13}
14
15#[cfg(test)]
16mod tests {
17    use crate::error::CommandExt;
18
19    use super::gradle_init;
20    #[test]
21    fn test_gradle_exe() {
22        let mut gradle = gradle_init().unwrap();
23        gradle.arg("-h");
24        gradle.output_err(true).unwrap();
25    }
26}