public boolean run(String targetDirectory) throws Throwable { // Create a time stamp and use it for the project name String projectName = new Date().toString(); log.info("Storing project: " + projectName); Project project = store.addProject(projectName, ""); // Our root directory File projectDirectory = new File(targetDirectory); boolean status = false; if (!config.getRecurse()) { // Do not parse sub-directory - only import files in the target. String name = projectDirectory.getName(); log.info("Storing dataset: " + name); Dataset dataset = store.addDataset(name, "", project); status = processDirectory(config.getPopulate(), projectDirectory, dataset); } else { // Parse the sub-directories - these will become our datasets for (File datasetDirectory : projectDirectory.listFiles()) { if (datasetDirectory.exists() && datasetDirectory.isDirectory()) { String name = datasetDirectory.getName(); log.info("Storing dataset: " + name); Dataset dataset = store.addDataset(name, "", project); // In each sub-directory/dataset, import the images needed status = processDirectory(config.getPopulate(), datasetDirectory, dataset); } } } store.logout(); return status; }