package jetbrains.mps.baseLanguage.unitTest.execution.settings;
/*Generated by MPS */
import java.io.File;
import jetbrains.mps.util.FileUtil;
import jetbrains.mps.baseLanguage.unitTest.execution.client.RunCachesManager;
public class DefaultCachesPathChooser {
private static final String BASE_NAME = "mps_test_dir";
public String chooseDir() {
File tmpDir = FileUtil.getTempDir();
for (int i = 0; i < 1000; ++i) {
String dirName = BASE_NAME + i;
File newTestDir = new File(tmpDir.getAbsolutePath(), dirName);
if (checkDir(newTestDir)) {
return newTestDir.getAbsolutePath();
}
}
throw new IllegalStateException("Cannot find directory to write in");
}
private boolean checkDir(File dir) {
return FileUtil.canWrite(dir) && !(RunCachesManager.isLocked(dir.getAbsolutePath()));
}
}