1
22
23 package com.liferay.portal.tools;
24
25 import com.liferay.portal.kernel.util.StringMaker;
26 import com.liferay.util.FileUtil;
27
28
34 public class CSSBuilder {
35
36 public static void main(String[] args) {
37 if (args.length == 2) {
38 new CSSBuilder(args[0], args[1]);
39 }
40 else {
41 throw new IllegalArgumentException();
42 }
43 }
44
45 public CSSBuilder(String cssDir, String mergedFile) {
46 try {
47 String content = FileUtil.read(cssDir + "/main.css");
48
49 content = replaceImports(cssDir, content);
50
51 FileUtil.write(mergedFile, content);
52 }
53 catch (Exception e) {
54 e.printStackTrace();
55 }
56 }
57
58 public String replaceImports(String cssDir, String s) throws Exception {
59 StringMaker sm = new StringMaker(s.length());
60
61 int pos = 0;
62
63 while (true) {
64 int x = s.indexOf(_BEGIN, pos);
65 int y = s.indexOf(_END, x + _BEGIN.length());
66
67 if ((x == -1) || (y == -1)) {
68 sm.append(s.substring(pos, s.length()));
69
70 break;
71 }
72 else {
73 sm.append(s.substring(pos, x));
74
75 String importFile = s.substring(x + _BEGIN.length(), y);
76
77 String importContent = FileUtil.read(cssDir + "/" + importFile);
78
79 importContent = replaceImports(cssDir, importContent);
80
81 sm.append(importContent);
82
83 pos = y + _END.length();
84 }
85 }
86
87 return sm.toString();
88 }
89
90 private static final String _BEGIN = "@import url(";
91
92 private static final String _END = ");";
93
94 }