public static void main(String[] args) {

		MyLogger.setLogLevel(MyLogger.logLevelInformation);
		
		InterpretCommandLineArguments(args);
		
		if (Photons.action == Photons.actionShowUsage) {
			MyLogger.displayInformationMessage(usage);
			System.exit(errorCode);
		}
		
		final Path logPath = Paths.get(Photons.destinationPath, String.format("actions_%s.txt", dateTimeFormatter.format(new Date())));
		try {
			MyLogger.setLogFile(logPath);
		} catch (IOException e) {
			System.err.println(String.format("ERROR: Could not create logfile '%s'.", logPath));
			e.printStackTrace();
			System.exit(errorCodeFailedToCreateLogFile);
		}
		
		if (Photons.action == Photons.actionImport) {
			FileImporter fileImporter = new FileImporter(Photons.sourcePath, Photons.destinationPath, Photons.types);
			try {
				//String uuidPath = FileUtil.getDeviceBasedUniformPath(Photons.sourcePath, Photons.sourcePath);
				//String u2 = uuidPath;
				fileImporter.Import();
			} catch (IOException e) {
				MyLogger.displayAndLogExceptionMessage(e, "Import failed");
			}
		} else if (Photons.action == Photons.actionVerify) {
			FileImporter fileImporter = new FileImporter(Photons.sourcePath, Photons.destinationPath, Photons.types);
			try {
				if (fileImporter.Verify()) {
					MyLogger.displayAndLogInformationMessage("Verification success.");
				} else {
					MyLogger.displayAndLogErrorMessage("Verification failed.");
				}
			} catch (IOException e) {
				MyLogger.displayAndLogExceptionMessage(e, "Import failed");
			}
		} else if (Photons.action == Photons.actionCheck) {
			// TODO: implement
			MyLogger.displayAndLogErrorMessage("Command [%s] is not implemented yet.", Photons.command);
			Photons.errorCode = errorCodeCommandOrOptionDoesNotExist;
		}
		
		if (Photons.errorCode != 0) {
			System.exit(Photons.errorCode);
		}

		MyLogger.displayAndLogInformationMessage("Done");
	}