/**
* Copyright (c) 2000-present Liferay, Inc. All rights reserved.
*
* This library is free software; you can redistribute it and/or modify it under
* the terms of the GNU Lesser General Public License as published by the Free
* Software Foundation; either version 2.1 of the License, or (at your option)
* any later version.
*
* This library is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
* FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
* details.
*/
package com.liferay.portal.tools;
import com.liferay.portal.kernel.util.StringUtil;
import com.liferay.portal.util.FileImpl;
import java.io.File;
import org.apache.tools.ant.DirectoryScanner;
/**
* @author Brian Wing Shun Chan
*/
public class TextReplacer {
public static void main(String[] args) {
String dirs = System.getProperty("text.replacer.dirs");
String includes = System.getProperty("text.replacer.includes");
String excludes = System.getProperty("text.replacer.excludes");
String tokenFile = System.getProperty("text.replacer.token.file");
String valueFile = System.getProperty("text.replacer.value.file");
new TextReplacer(dirs, includes, excludes, tokenFile, valueFile);
}
public TextReplacer(
String dirs, String includes, String excludes, String tokenFile,
String valueFile) {
try {
String token = _fileUtil.read(tokenFile);
if (token == null) {
System.out.println(tokenFile + " does not exist");
return;
}
String value = _fileUtil.read(valueFile);
if (value == null) {
System.out.println(valueFile + " does not exist");
return;
}
for (String dir : StringUtil.split(dirs)) {
if (!dir.endsWith("/")) {
dir += "/";
}
if (!_fileUtil.exists(dir)) {
System.out.println(dir + " does not exist");
continue;
}
DirectoryScanner directoryScanner = new DirectoryScanner();
directoryScanner.setBasedir(dir);
directoryScanner.setIncludes(StringUtil.split(includes));
directoryScanner.setExcludes(StringUtil.split(excludes));
directoryScanner.scan();
for (String fileName : directoryScanner.getIncludedFiles()) {
File file = new File(dir + fileName);
String content = _fileUtil.read(file);
String newContent = StringUtil.replace(
content, token, value);
if (!content.equals(newContent)) {
_fileUtil.write(file, newContent);
}
}
}
}
catch (Exception e) {
e.printStackTrace();
}
}
private static final FileImpl _fileUtil = FileImpl.getInstance();
}