|
|
@@ -7,6 +7,7 @@ import cn.reghao.devops.web.mgr.app.model.po.config.AppConfig;
|
|
|
import cn.reghao.devops.web.mgr.builds.model.po.CompilerConfig;
|
|
|
import cn.reghao.devops.web.mgr.build.chain.BuildTools;
|
|
|
import cn.reghao.devops.web.mgr.builds.service.CompilerConfigService;
|
|
|
+import cn.reghao.devops.web.util.StringUtil;
|
|
|
import cn.reghao.jutil.jdk.result.Result;
|
|
|
import cn.reghao.jutil.jdk.result.ResultStatus;
|
|
|
import cn.reghao.jutil.jdk.shell.ShellExecutor;
|
|
|
@@ -97,54 +98,7 @@ public class CompilerConfigServiceImpl implements CompilerConfigService {
|
|
|
|
|
|
String versionCmd = compilerConfig.getVersionCmd();
|
|
|
ShellResult shellResult = shellExecutor.exec(versionCmd.split("\\s+"));
|
|
|
- String html = txtToHtml(shellResult.getResult());
|
|
|
+ String html = StringUtil.txtToHtml(shellResult.getResult());
|
|
|
return html;
|
|
|
}
|
|
|
-
|
|
|
- private String txtToHtml(String s) {
|
|
|
- StringBuilder builder = new StringBuilder();
|
|
|
- boolean previousWasASpace = false;
|
|
|
- for (char c : s.toCharArray()) {
|
|
|
- if (c == ' ') {
|
|
|
- if (previousWasASpace) {
|
|
|
- builder.append(" ");
|
|
|
- previousWasASpace = false;
|
|
|
- continue;
|
|
|
- }
|
|
|
- previousWasASpace = true;
|
|
|
- } else {
|
|
|
- previousWasASpace = false;
|
|
|
- }
|
|
|
- switch (c) {
|
|
|
- case '<':
|
|
|
- builder.append("<");
|
|
|
- break;
|
|
|
- case '>':
|
|
|
- builder.append(">");
|
|
|
- break;
|
|
|
- case '&':
|
|
|
- builder.append("&");
|
|
|
- break;
|
|
|
- case '"':
|
|
|
- builder.append(""");
|
|
|
- break;
|
|
|
- case '\n':
|
|
|
- builder.append("<br>");
|
|
|
- break;
|
|
|
- // We need Tab support here, because we print StackTraces as HTML
|
|
|
- case '\t':
|
|
|
- builder.append(" ");
|
|
|
- break;
|
|
|
- default:
|
|
|
- builder.append(c);
|
|
|
-
|
|
|
- }
|
|
|
- }
|
|
|
- String converted = builder.toString();
|
|
|
- String str = "(?i)\\b((?:https?://|www\\d{0,3}[.]|[a-z0-9.\\-]+[.][a-z]{2,4}/)(?:[^\\s()<>]+|\\(([^\\s()<>]+|(\\([^\\s()<>]+\\)))*\\))+(?:\\(([^\\s()<>]+|(\\([^\\s()<>]+\\)))*\\)|[^\\s`!()\\[\\]{};:\'\".,<>?«»“”‘’]))";
|
|
|
- Pattern patt = Pattern.compile(str);
|
|
|
- Matcher matcher = patt.matcher(converted);
|
|
|
- converted = matcher.replaceAll("<a href=\"$1\">$1</a>");
|
|
|
- return converted;
|
|
|
- }
|
|
|
}
|