Merge pull request #101 from ThomasFok/validate_import_command_options

acx - validation of address and auxtype parameters of import command
This commit is contained in:
A2 Geek 2023-02-19 19:14:51 -06:00 committed by GitHub
commit 74704f1ba9
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -86,6 +86,25 @@ public class ImportCommand extends ReadWriteDiskCommandOptions {
@Override @Override
public int handleCommand() throws Exception { public int handleCommand() throws Exception {
final int MAX_ADDRESS = 0xFFFF;
final int MAX_AUXTYPE = 0xFFFF;
if (overrides.fileAddress.isPresent()){
final int fileAddress = overrides.fileAddress.get();
if (fileAddress < 0 || fileAddress > MAX_ADDRESS) {
String errormsg = String.format("address(%d) is out of range(0-%d).", fileAddress, MAX_ADDRESS);
throw new IllegalArgumentException(errormsg);
}
}
if (overrides.auxType.isPresent()){
final int auxType = overrides.auxType.get();
if (auxType < 0 || auxType > MAX_AUXTYPE) {
String errormsg = String.format("auxiliary type(%d) is out of range(0-%d).", auxType, MAX_AUXTYPE);
throw new IllegalArgumentException(errormsg);
}
}
DirectoryEntry directory = disk.getFormattedDisks()[0]; DirectoryEntry directory = disk.getFormattedDisks()[0];
if (directoryName.isPresent()) { if (directoryName.isPresent()) {
String[] dirs = directoryName.get().split("/"); String[] dirs = directoryName.get().split("/");
@ -351,7 +370,8 @@ public class ImportCommand extends ReadWriteDiskCommandOptions {
private Optional<String> fileName; private Optional<String> fileName;
@Option(names = { "--aux", "--auxtype" }, description = "Aux. Type. " @Option(names = { "--aux", "--auxtype" }, description = "Aux. Type. "
+ "(For a filesystem that supports aux type.)") + "(For a filesystem that supports aux type.)",
converter = IntegerTypeConverter.class)
private Optional<Integer> auxType; private Optional<Integer> auxType;
} }
} }