Skip to content

Commit 6bb80c8

Browse files
committed
Radon Virtual Env. 추가 Cache 적용
1 parent 1c8cc32 commit 6bb80c8

File tree

2 files changed

+37
-8
lines changed

2 files changed

+37
-8
lines changed

src/main/java/com/samsungsds/analyst/code/main/MeasuredResult.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -1573,7 +1573,7 @@ public void addTempFileToBeDeleted(File tmp) {
15731573
public void cleanTempFiles() {
15741574
if (!System.getProperty("deleteTempFiles", "true").equalsIgnoreCase("false")) {
15751575
for (File toBeDeletedFile : toBeDeletedFiles) {
1576-
LOGGER.info("Delete Temporary file : {}", toBeDeletedFile.getAbsolutePath()); // TODO
1576+
LOGGER.info("Delete Temporary file : {}", toBeDeletedFile.getAbsolutePath());
15771577
FileUtils.deleteQuietly(toBeDeletedFile);
15781578
}
15791579
}

src/main/java/com/samsungsds/analyst/code/python/radon/RadonAnalysisLauncher.java

+36-7
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@
2121
import com.google.gson.reflect.TypeToken;
2222
import com.samsungsds.analyst.code.main.CacheUtils;
2323
import com.samsungsds.analyst.code.main.MeasuredResult;
24+
import com.samsungsds.analyst.code.main.Version;
2425
import com.samsungsds.analyst.code.pmd.ComplexityAnalysis;
2526
import com.samsungsds.analyst.code.pmd.ComplexityResult;
2627
import com.samsungsds.analyst.code.python.PythonRuntime;
@@ -65,18 +66,46 @@ public void addOption(String option, String value) {
6566
public void run(String instanceKey) {
6667
String python = checkPythonVersionAndGetPath();
6768

68-
File tmpDir = saveRadonPackageWheels(instanceKey);
69+
if (haveCachedRadon()) {
70+
File virtualEnvDir = new File(IOAndFileUtils.mkdirCacheDir(), "radon-" + Version.CODE_ANALYST + File.separator + "radon");
71+
LOGGER.info("Cached Radon Virtual Env. used : {}", virtualEnvDir.toString());
72+
String resultJsonPath = runRadon(virtualEnvDir.getAbsolutePath());
6973

70-
String virtualEnvDir = makeVirtualEnv(python, tmpDir);
74+
LOGGER.debug("radon result : {}", resultJsonPath);
75+
processResult(resultJsonPath, instanceKey);
76+
} else {
77+
File tmpDir = saveRadonPackageWheels(instanceKey);
78+
79+
String virtualEnvDir = makeVirtualEnv(python, tmpDir);
80+
81+
installWheelPackages(tmpDir.getPath(), instanceKey);
82+
83+
installRadonPackages(tmpDir.getPath());
84+
85+
String resultJsonPath = runRadon(virtualEnvDir);
86+
87+
LOGGER.debug("radon result : {}", resultJsonPath);
88+
processResult(resultJsonPath, instanceKey);
89+
}
90+
}
7191

72-
installWheelPackages(tmpDir.getPath(), instanceKey);
92+
private boolean haveCachedRadon() {
93+
if (System.getProperty("noCache", "false").equalsIgnoreCase("true")) {
94+
return false;
95+
}
7396

74-
installRadonPackages(tmpDir.getPath());
97+
File cacheDir = IOAndFileUtils.mkdirCacheDir();
7598

76-
String resultJsonPath = runRadon(virtualEnvDir);
99+
File radonExecuteFile;
100+
if (PythonRuntime.IS_MACOS || PythonRuntime.IS_LINUX) {
101+
radonExecuteFile = new File(cacheDir,
102+
"radon-" + Version.CODE_ANALYST + File.separator + "radon" + File.separator + "bin" + File.separator + "radon");
103+
} else {
104+
radonExecuteFile = new File(cacheDir,
105+
"radon-" + Version.CODE_ANALYST + File.separator + "radon" + File.separator + "Scripts" + File.separator + "radon.exe");
106+
}
77107

78-
LOGGER.debug("radon result : {}", resultJsonPath);
79-
processResult(resultJsonPath, instanceKey);
108+
return radonExecuteFile.exists();
80109
}
81110

82111
private String checkPythonVersionAndGetPath() {

0 commit comments

Comments
 (0)