package projectmanager;
import java.util.Map;
import java.util.HashMap;
import java.io.File;
import java.io.FileFilter;
public class Manager {
private final IniReader config = new IniReader("C:\\xuj.ini");
Map<String, String> path = new HashMap<>();
public Manager() {
checkConfig();
}
private void checkConfig() {
boolean error = false;
if(!new File(config.get("Path", "JDK_HOME")).exists()) {
System.out.println("Папка с JDK не найдена!");
error = true;
}else
path.put("JDK_HOME", config.get("Path", "JDK_HOME"));
if(!new File(config.get("Path", "SDK_HOME")).exists()) {
System.out.println("Папка с Android SDK не найдена!");
error = true;
}else
path.put("SDK_HOME", config.get("Path", "SDK_HOME"));
if(!new File(config.get("Path", "PROJECTS_HOME")).exists()) {
System.out.println("Папка с проектами не найдена!");
error = true;
}else
path.put("PROJECTS_HOME", config.get("Path", "PROJECTS_HOME"));
if(!new File(config.get("Path", "SDK_HOME") + "/build-tools/" ).exists()) {
System.out.println("Папка build-tools в Android SDK не найдена!");
error = true;
}
if(error) {
System.out.println("\nПроверьте настройки в файле config.ini и запустите программу ещё раз!");
System.exit(0);
}
error = false;
String btv = getLatestBuildToolsVersion(new File(path.get("SDK_HOME") + "/build-tools/"));
if(btv != null)
path.put("BUILD_TOOLS_PATH", path.get("SDK_HOME") + "/build-tools/" + btv);
else {
System.out.println("Не найдено инструментов " + path.get("SDK_HOME") + "/build-tools/");
System.exit(0);
}
String[] checkFiles = {
path.get("BUILD_TOOLS_PATH") + "/aapt.exe",
path.get("BUILD_TOOLS_PATH") + "/dx.bat",
path.get("SDK_HOME") + "/platform-tools/adb.exe",
path.get("JDK_HOME") + "/bin/javac.exe",
path.get("JDK_HOME") + "/bin/keytool.exe",
path.get("JDK_HOME") + "/bin/jarsigner.exe"
};
for(String file : checkFiles)
if(!new File(file).exists()) {
System.out.println("Файл '" + file + "' не найден!");
error = true;
}
if(error)
System.exit(0);
}
private String getLatestBuildToolsVersion(File path) {
File[] dirs = path.listFiles(new FileFilter() {
public boolean accept(File file) {
return file.isDirectory();
}
});
for(int i = dirs.length - 1; i >= 0; i--)
try {
Integer.parseInt(dirs[i].getName().substring(0,1));
return dirs[i].getName();
}catch(NumberFormatException numex) {}
return null;
}
}