X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;f=src%2Fde%2Ftodesbaum%2Fjsite%2Fmain%2FCLI.java;h=03ddb50382ca4933cd8f686f70df2d7ada822352;hb=a29e0273333d07d173b1f0267baf7a781b73845a;hp=435902820bc46197847d67493bd161ecc188a202;hpb=e44d6888ffaa3151a99b9bb7cb3c887d11feb596;p=jSite.git diff --git a/src/de/todesbaum/jsite/main/CLI.java b/src/de/todesbaum/jsite/main/CLI.java index 4359028..03ddb50 100644 --- a/src/de/todesbaum/jsite/main/CLI.java +++ b/src/de/todesbaum/jsite/main/CLI.java @@ -1,5 +1,5 @@ /* - * jSite - + * jSite - * Copyright (C) 2006 David Roden * * This program is free software; you can redistribute it and/or modify @@ -28,20 +28,42 @@ import de.todesbaum.jsite.application.Project; import de.todesbaum.jsite.application.ProjectInserter; /** - * @author David Roden <droden@gmail.com> - * @version $Id$ + * Command-line interface for jSite. + * + * @author David ‘Bombe’ Roden <bombe@freenetproject.org> */ public class CLI implements InsertListener { + /** Object used for synchronization. */ private Object lockObject = new Object(); + + /** Writer for the console. */ private PrintWriter outputWriter = new PrintWriter(System.out, true); + + /** The freenet interface. */ private Freenet7Interface freenetInterface; + + /** The project inserter. */ private ProjectInserter projectInserter = new ProjectInserter(); + + /** The list of nodes. */ private Node[] nodes; + + /** The projects. */ private Project[] projects; + + /** Whether the insert has finished. */ private boolean finished = false; + + /** Whether the insert finished successfully. */ private boolean success; + /** + * Creates a new command-line interface. + * + * @param args + * The command-line arguments + */ private CLI(String[] args) { if ((args.length == 0) || args[0].equals("-h") || args[0].equals("--help")) { @@ -74,7 +96,7 @@ public class CLI implements InsertListener { projectInserter.setFreenetInterface(freenetInterface); Project currentProject = null; - for (String argument: args) { + for (String argument : args) { String value = argument.substring(argument.indexOf('=') + 1).trim(); if (argument.startsWith("--node=")) { Node newNode = getNode(value); @@ -133,8 +155,15 @@ public class CLI implements InsertListener { configuration.save(); } + /** + * Returns the project with the given name. + * + * @param name + * The name of the project + * @return The project, or null if no project could be found + */ private Project getProject(String name) { - for (Project project: projects) { + for (Project project : projects) { if (project.getName().equals(name)) { return project; } @@ -142,8 +171,15 @@ public class CLI implements InsertListener { return null; } + /** + * Returns the node with the given name. + * + * @param name + * The name of the node + * @return The node, or null if no node could be found + */ private Node getNode(String name) { - for (Node node: nodes) { + for (Node node : nodes) { if (node.getName().equals(name)) { return node; } @@ -151,6 +187,14 @@ public class CLI implements InsertListener { return null; } + /** + * Inserts the given project. + * + * @param currentProject + * The project to insert + * @return true if the insert finished successfully, + * false otherwise + */ private boolean insertProject(Project currentProject) { if (!freenetInterface.hasNode()) { outputWriter.println("Node is not running!"); @@ -163,6 +207,7 @@ public class CLI implements InsertListener { try { lockObject.wait(); } catch (InterruptedException e) { + /* ignore, we're in a loop. */ } } } @@ -180,6 +225,16 @@ public class CLI implements InsertListener { outputWriter.println("Starting Insert of project \"" + project.getName() + "\"."); } + /** + * {@inheritDoc} + */ + public void projectUploadFinished(Project project) { + outputWriter.println("Project \"" + project.getName() + "\" has ben uploaded, starting insert..."); + } + + /** + * {@inheritDoc} + */ public void projectURIGenerated(Project project, String uri) { outputWriter.println("URI: " + uri); } @@ -207,6 +262,12 @@ public class CLI implements InsertListener { // MAIN // + /** + * Creates a new command-line interface with the given arguments. + * + * @param args + * The command-line arguments + */ public static void main(String[] args) { new CLI(args); }