import java.io.*;
/**
* Searches for all "<code>org</code>" directories from the current directory,
* and moves its sub-directories in a single "<code>org</code>" directory in
* the current directory. The old sub-directories are deleted.
*/
public final class Move {
private Move() {
}
public static void main(String[] args) {
process(new File("."), null);
}
private static void process(final File directory, final File root) {
for (final File file : directory.listFiles()) {
if (file.isDirectory()) {
File fileRoot = root;
if (file.getName().equals("org")) {
File parent = file.getParentFile();
if (parent.getName().equals("java")) {
parent = parent.getParentFile();
if (parent.getName().equals("main")) {
if (parent.getPath().contains("modules")) {
fileRoot = file.getParentFile();
}
}
}
}
process(file, fileRoot);
// Delete the directory later in this block.
} else if (root != null) {
final File dest = new File(file.getPath().substring(root.getPath().length() + 1));
System.out.println(dest);
dest.getParentFile().mkdirs();
if (!file.renameTo(dest)) {
System.err.println("Can't move " + file);
System.exit(1);
}
continue;
}
if (!file.delete()) {
System.err.println("Can't delete " + file);
System.exit(1);
}
}
}
}