AppleCommander/app/cli-acx/src/main/java/io/github/applecommander/acx/base/ReadWriteDiskCommandWithGlo...

39 lines
1.3 KiB
Java

package io.github.applecommander.acx.base;
import java.util.Arrays;
import java.util.List;
import java.util.logging.Logger;
import java.util.stream.Collectors;
import io.github.applecommander.filestreamer.FileStreamer;
import io.github.applecommander.filestreamer.FileTuple;
import io.github.applecommander.filestreamer.TypeOfFile;
import picocli.CommandLine.Parameters;
public abstract class ReadWriteDiskCommandWithGlobOptions extends ReadWriteDiskCommandOptions {
private static Logger LOG = Logger.getLogger(ReadWriteDiskCommandWithGlobOptions.class.getName());
@Parameters(arity = "1..*", description = "File glob(s) to unlock (default = '*') - be cautious of quoting!")
private List<String> globs = Arrays.asList("*");
@Override
public int handleCommand() throws Exception {
List<FileTuple> files = FileStreamer.forDisk(disk)
.ignoreErrors(true)
.includeTypeOfFile(TypeOfFile.FILE)
.matchGlobs(globs)
.stream()
.collect(Collectors.toList());
if (files.isEmpty()) {
LOG.warning(() -> String.format("No matches found for %s.", String.join(",", globs)));
} else {
files.forEach(this::fileHandler);
}
return 0;
}
public abstract void fileHandler(FileTuple tuple);
}