package com.robonobo.console.cmds;
import java.io.File;
import java.io.PrintWriter;
import java.util.List;
import com.robonobo.common.util.TextUtil;
import com.robonobo.console.RobonoboConsole;
import com.robonobo.core.RobonoboController;
import com.robonobo.core.api.model.User;
public class watch implements ConsoleCommand {
public void printHelp(PrintWriter out) {
out.println("'watch' shows current watched dirs\n'"
+ "watch add <path>' adds the supplied dir to the list to watch for new files\n'"
+ "watch del <path>' removes dir from the watch list\n");
}
public void run(RobonoboConsole console, String[] args, PrintWriter out) throws Exception {
RobonoboController controller = console.getController();
if(args.length == 0) {
List<File> watchDirs = controller.getWatchDirs();
out.println(TextUtil.numItems(watchDirs, "dir"));
for (File dir : watchDirs) {
out.println(dir.getAbsolutePath());
}
} else if(args.length == 1)
printHelp(out);
else {
String subCmd = args[0];
File dir = new File(args[1]);
if(subCmd.equals("add")) {
User user = controller.getMyUser();
if (user == null) {
out.println("You must be logged in (type 'help login')");
return;
}
if(!dir.exists()) {
out.println("Directory '"+dir.getAbsolutePath()+"' does not exist");
return;
}
if(!dir.isDirectory()) {
out.println(dir.getAbsolutePath()+" is not a directory");
return;
}
controller.addWatchDir(dir);
out.println("Directory '"+dir.getAbsolutePath()+"' added to watch list");
} else if(subCmd.equals("del")) {
controller.deleteWatchDir(dir);
out.println("Entry '"+dir.getAbsolutePath()+"' deleted");
} else
printHelp(out);
}
}
}