package com.xenoage.zong.tools.index; import java.io.File; import java.io.FileOutputStream; import org.w3c.dom.Document; import org.w3c.dom.Element; import com.xenoage.utils.io.index.FilesystemIndex; import com.xenoage.utils.jse.xml.XMLWriter; /** * This little program creates a {@link FilesystemIndex} file * for directories or for a JAR file. * * Possible arguments: * <ul> * <li>(none): list all content in the current directory</li> * <li>-jar myjar1.jar myjar2.jar ...: lists the content of the given jar files</li> * <li>-dir mydir1 mydir2 mydir3 ...: lists the content of the given directories</li> * </ul> * * The resulting index file is written to the current directory. * * @author Andreas Wenger */ public class FilesystemIndexCreator { /** * @param args names of the directories to include (like "data" and "files"). * If empty, the current directory is used. */ public static void main(String... args) throws Exception { Document doc = XMLWriter.createEmptyDocument(); Element root = XMLWriter.addElement("index", doc); if (args.length == 0) { DirCollector.processDirChildren(new File("."), root); } else if (args.length >= 2 && args[0].equals("-jar")) { for (int i = 1; i < args.length; i++) { JarCollector.process(new File(args[i]), root); } } else if (args.length >= 2 && args[0].equals("-dir")) { for (int i = 1; i < args.length; i++) { DirCollector.processDir(new File(args[i]), root); } } else { System.out.println("Wrong syntax. See class JavaDoc."); return; } XMLWriter.writeFile(doc, new FileOutputStream(FilesystemIndex.indexFile)); System.out.println(FilesystemIndexCreator.class.getSimpleName() + " finished."); System.out.println("Index written to file " + FilesystemIndex.indexFile); } }