public StatusOperation(Config config) { this(config, new StatusOperationOptions()); }
@Override public StatusOperationOptions parseOptions(String[] operationArgs) throws Exception { StatusOperationOptions operationOptions = new StatusOperationOptions(); OptionParser parser = new OptionParser(); parser.allowsUnrecognizedOptions(); OptionSpec<Void> optionForceChecksum = parser.acceptsAll(asList("f", "force-checksum")); OptionSpec<Void> optionNoDeleteUpload = parser.acceptsAll(asList("D", "no-delete")); OptionSet options = parser.parse(operationArgs); // --force-checksum operationOptions.setForceChecksum(options.has(optionForceChecksum)); // -D, --no-delete operationOptions.setDelete(!options.has(optionNoDeleteUpload)); return operationOptions; }
public UpOperationResult upWithForceChecksum() throws Exception { StatusOperationOptions statusOptions = new StatusOperationOptions(); statusOptions.setForceChecksum(true); UpOperationOptions upOptions = new UpOperationOptions(); upOptions.setStatusOptions(statusOptions); return up(upOptions); }
@Override public StatusOperationResult execute() throws Exception { logger.log(Level.INFO, ""); logger.log(Level.INFO, "Running 'Status' at client " + config.getMachineName() + " ..."); logger.log(Level.INFO, "--------------------------------------------"); if (options != null && options.isForceChecksum()) { logger.log(Level.INFO, "Force checksum ENABLED."); } if (options != null && !options.isDelete()) { logger.log(Level.INFO, "Delete missing files DISABLED."); } // Get local database logger.log(Level.INFO, "Querying current file tree from database ..."); eventBus.post(new StatusStartSyncExternalEvent(config.getLocalDir().getAbsolutePath())); // Path to actual file version final Map<String, FileVersion> filesInDatabase = localDatabase.getCurrentFileTree(); // Find local changes logger.log(Level.INFO, "Analyzing local folder " + config.getLocalDir() + " ..."); ChangeSet localChanges = findLocalChanges(filesInDatabase); if (!localChanges.hasChanges()) { logger.log(Level.INFO, "- No changes to local database"); } // Return result StatusOperationResult statusResult = new StatusOperationResult(); statusResult.setChangeSet(localChanges); eventBus.post(new StatusEndSyncExternalEvent(config.getLocalDir().getAbsolutePath(), localChanges.hasChanges())); return statusResult; }
private ChangeSet findLocalChanges(final Map<String, FileVersion> filesInDatabase) throws FileNotFoundException, IOException { ChangeSet localChanges = findLocalChangedAndNewFiles(config.getLocalDir(), filesInDatabase); if (options == null || options.isDelete()) { findAndAppendDeletedFiles(localChanges, filesInDatabase); } return localChanges; }
boolean forceChecksum = options != null && options.isForceChecksum(); FileVersionComparison fileVersionComparison = fileVersionComparator.compare(expectedLastFileVersion, actualLocalFile.toFile(), forceChecksum);
public StatusOperationResult status() throws Exception { return status(new StatusOperationOptions()); }