package com.constellio.sdk.dev.tools;
import java.io.File;
import java.io.IOException;
import org.apache.commons.io.FileUtils;
import org.apache.commons.io.filefilter.IOFileFilter;
public class SynchronizeOpenSourceVersionMain {
//The .git folder will be copied in this folder
private static final File BACK_UP_GIT_DIR = new File("/Users/francisbaril/IdeaProjects/backupGit");
private static final File PRIVATE_PROJECT_DIR = new File("/Users/francisbaril/IdeaProjects/intelligid-dev");
private static final File PUBLIC_PROJECT_DIR = new File("/Users/francisbaril/IdeaProjects/constellio-open-source");
public static void main(String argv[])
throws Exception {
BACK_UP_GIT_DIR.mkdirs();
File backupGit = new File(BACK_UP_GIT_DIR, ".git");
FileUtils.deleteDirectory(backupGit);
File openSourceGitFolder = new File(PUBLIC_PROJECT_DIR, ".git");
FileUtils.copyDirectory(openSourceGitFolder, backupGit);
File headerFile = new File(SynchronizeOpenSourceVersionMain.class.getResource("header.txt").getFile());
String header = FileUtils.readFileToString(headerFile);
FileUtils.deleteDirectory(PUBLIC_PROJECT_DIR);
PUBLIC_PROJECT_DIR.mkdirs();
FileUtils.copyDirectory(PRIVATE_PROJECT_DIR, PUBLIC_PROJECT_DIR);
for (File file : FileUtils.listFiles(PUBLIC_PROJECT_DIR, new String[] { "java" }, true)) {
System.out.println(file.getAbsolutePath());
String content = FileUtils.readFileToString(file);
if (!content.startsWith("/*")) {
FileUtils.write(file, "/*" + header + "\n*/\n" + content, false);
}
}
IOFileFilter acceptAll = new IOFileFilter() {
@Override
public boolean accept(File file) {
return true;
}
@Override
public boolean accept(File dir, String name) {
return true;
}
};
for (File file : FileUtils.listFiles(PUBLIC_PROJECT_DIR, acceptAll, acceptAll)) {
if (file.exists() && file.getName().startsWith(".")) {
if (file.isDirectory()) {
FileUtils.deleteDirectory(file);
} else {
file.delete();
}
}
}
delete("sdk/src/oasiq");
delete("sdk/src/com/constellio/sdk/dev/tools/SynchronizeOpenSourceVersionMain.java");
delete("data/src/com/constellio/data/test/ZeStamp.java");
delete("sdk/src/com/constellio/app/ui/StartWithSaveStateAcceptTest.java");
delete("sdk/src/com/constellio/app/ui/StartWithSaveStateAcceptTest.java");
delete("alfresco-file-server");
delete("benchmarks");
delete("benckmarks");
delete("bin");
delete("build");
delete("classes");
delete("doc");
delete("Constellio Desktop Agent");
delete("connectors");
delete("custom");
delete("dist");
delete("migration");
delete("solrHome");
delete("migration");
delete("temp");
delete("temp-test");
delete("update-client");
delete("web");
delete("constellio.log");
delete("constellio.log.1");
delete("rebel.xml");
delete("rules.checkstyle");
delete("eclipse-preferences.epf");
delete("intelligid-dev.iml");
delete("infinitest.filters");
delete("suppressions.xml");
delete("suppressions.xml");
delete("importation");
delete("agent");
delete("client");
delete("app/build");
delete("app/WebContent/WEB-INF/classes");
delete("app/WebContent/WEB-INF/default-solr-cores");
delete("app/constellio.log");
delete("app/rules.checkstyle");
delete("app/app.iml");
delete("app/src/rebel.xml");
delete("app/src/main/webapp/VAADIN/gwt-unitCache");
delete("model/build");
delete("model/bin");
delete("model/rules.checkstyle");
delete("model/model.iml");
delete("model/src/rebel.xml");
delete("data/build");
delete("data/bin");
delete("data/rules.checkstyle");
delete("data/data.iml");
delete("data/src/rebel.xml");
delete("sdk/turboCache");
delete("sdk/webapp/WEB-INF/lib");
delete("sdk/intelligid-logo.png");
delete("sdk/benchmarks");
delete("sdk/benckmarks");
delete("sdk/build");
delete("sdk/bin");
delete("sdk/rules.checkstyle");
delete("sdk/sdk.iml");
delete("sdk/constellio.log");
delete("sdk/constellio.log.1");
delete("sdk/doc");
delete("sdk/generatedReports");
delete("sdk/infinitest.filters");
delete("sdk/check.png");
delete("sdk/uncheck.png");
delete("sdk/snapshots");
delete("sdk/temp-test");
delete("sdk/sdk.properties");
delete("sdk/src/rebel.xml");
delete("sdk/src/rebel-remote.xml");
delete("sdk/src/main/webapp/VAADIN/");
delete("sdk/sdk.properties.all");
delete("sdk/sdk.properties.cloud");
delete("sdk/sdk.properties.fast");
delete("sdk/sdk.properties.jenkins");
delete("sdk/sdk.properties.load");
delete("sdk/sdk.properties.sonar");
move("sdk/sdk.properties.opensource", "sdk/sdk.properties");
delete("conf/constellio.properties");
delete(".git");
delete(".gradle");
delete(".idea");
delete(".settings");
delete("model/.settings");
delete("app/.settings");
delete("data/.settings");
delete("sdk/.settings");
FileUtils.copyDirectory(backupGit, openSourceGitFolder);
}
private static void delete(String path)
throws IOException {
File file = new File(PUBLIC_PROJECT_DIR, path.replace("/", File.separator));
if (file.isDirectory()) {
FileUtils.deleteDirectory(file);
} else {
file.delete();
}
}
private static void move(String path, String newPath)
throws IOException {
File file = new File(PUBLIC_PROJECT_DIR, path.replace("/", File.separator));
File newFile = new File(PUBLIC_PROJECT_DIR, newPath.replace("/", File.separator));
if (file.isDirectory()) {
FileUtils.moveDirectory(file, newFile);
} else {
FileUtils.moveFile(file, newFile);
}
}
}