/*
* Copyright (c) 2012 EMC Corporation
* All Rights Reserved
*/
package com.emc.storageos.auth.service.utils;
import java.io.File;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import com.webcohesion.enunciate.EnunciateConfiguration;
import com.webcohesion.enunciate.Enunciate;
/**
* Main to drive Enunciator
*/
public class DocGenerator {
// relevant resources and objects for documentation
private static final String[] packages = {
"authsvc/src/main/java/com/emc/storageos/auth/service/impl/resource"
};
/**
* Collect java source code under a directory
*
* @param start
* @param file
*/
public static void collectFiles(File start, final List<String> file) {
if (start.isDirectory()) {
File[] files = start.listFiles();
for (int i = 0; i < files.length; i++) {
File f = files[i];
if (f.isDirectory()) {
collectFiles(f, file);
} else if (f.getName().endsWith(".java")) {
file.add(f.getAbsolutePath());
}
}
}
}
public static void main(String[] args) throws Exception {
List<String> files = new ArrayList<String>();
for (int i = 0; i < packages.length; i++) {
collectFiles(new File(packages[i]), files);
}
EnunciateConfiguration config = new EnunciateConfiguration();
config.setDefaultTitle("Bourne API");
Enunciate e = new Enunciate();
File buildDir = new File(args[0]);
if (!buildDir.exists()) {
buildDir.mkdir();
}
File intermediateDir = new File(buildDir, "docs_xml");
if (!intermediateDir.exists()) {
intermediateDir.mkdir();
}
e.addSourceDir(buildDir);
e.getApiRegistry();
e.run();
}
}