Tweaking to allow some useful filetype mnemonics.

This commit is contained in:
Rob Greene 2018-05-26 17:39:25 -05:00
parent 4536b24763
commit 81656bc9b8
3 changed files with 31 additions and 3 deletions

View File

@ -75,7 +75,7 @@ Resource Fork: Not present
The `--fix-text` flag flips the high-bit and translates the newline character:
```shell
$ echo "Hello World!" | asu create --name my-text-file --stdout --filetype 0x04 --stdin-fork=data --fix-text | hexdump -C
$ echo "Hello World!" | asu create --name my-text-file --stdout --filetype txt --stdin-fork=data --fix-text | hexdump -C
00000000 00 05 16 00 00 02 00 00 00 00 00 00 00 00 00 00 |................|
00000010 00 00 00 00 00 00 00 00 00 03 00 00 00 03 00 00 |................|
00000020 00 3e 00 00 00 0c 00 00 00 0b 00 00 00 4a 00 00 |.>...........J..|
@ -89,7 +89,7 @@ $ echo "Hello World!" | asu create --name my-text-file --stdout --filetype 0x04
Without the `--fix-text` flag:
```shell
$ echo "Hello World!" | asu create --name my-text-file --stdout --filetype 0x04 --stdin-fork=data | hexdump -C
$ echo "Hello World!" | asu create --name my-text-file --stdout --filetype txt --stdin-fork=data | hexdump -C
00000000 00 05 16 00 00 02 00 00 00 00 00 00 00 00 00 00 |................|
00000010 00 00 00 00 00 00 00 00 00 03 00 00 00 03 00 00 |................|
00000020 00 3e 00 00 00 0c 00 00 00 0b 00 00 00 4a 00 00 |.>...........J..|

View File

@ -42,7 +42,7 @@ public class CreateCommand implements Callable<Void> {
@Option(names = "--access", description = "Set the ProDOS access flags", converter = IntegerTypeConverter.class)
private Integer access;
@Option(names = "--filetype", description = "Set the ProDOS file type", converter = IntegerTypeConverter.class)
@Option(names = "--filetype", description = "Set the ProDOS file type (also accepts BIN/BAS/SYS)", converter = ProdosFileTypeConverter.class)
private Integer filetype;
@Option(names = "--auxtype", description = "Set the ProDOS auxtype", converter = IntegerTypeConverter.class)

View File

@ -0,0 +1,28 @@
package io.github.applecommander.applesingle.tools.asu;
import java.util.HashMap;
import java.util.Map;
import picocli.CommandLine.ITypeConverter;
/** Add support for the more common ProDOS file type strings as well as integers. */
public class ProdosFileTypeConverter extends IntegerTypeConverter implements ITypeConverter<Integer> {
private final Map<String,String> fileTypes = new HashMap<String,String>() {
private static final long serialVersionUID = 1812781095833750521L;
{
put("TXT", "$04");
put("BIN", "$06");
put("INT", "$fa");
put("BAS", "$fc");
put("REL", "$fe");
put("SYS", "$ff");
}
};
@Override
public Integer convert(String value) {
// If we find the string in our map, swap it for the correct hex string.
// Else just pass in the original value.
return super.convert(fileTypes.getOrDefault(value.toUpperCase(), value));
}
}