CLI: Implement --reader switch to specify a particular PC/SC reader. (#322)

This commit is contained in:
Michał Leszczyński
2024-06-09 07:28:53 -07:00
committed by GitHub
parent 0e34a7f043
commit 94d627c1dd
3 changed files with 13 additions and 7 deletions

View File

@@ -39,6 +39,9 @@ parser.add_argument("--non-interactive", {
action: "store_true",
"default": false
});
parser.add_argument("--reader", {
help: "Name of the PC/SC reader to be used."
});
function parseArgs() {
return parser.parse_args();

View File

@@ -12,6 +12,7 @@ const parser = new ArgumentParser({
description: 'HaLo - Command Line Tool for PC/SC'
});
parser.add_argument("-o", "--output", {help: "Output format, either: color (default, better for humans), json (better for scripts).", "default": "color"});
parser.add_argument("--reader", {help: "Name of the PC/SC reader to be used."});
const subparsers = parser.add_subparsers({help: 'command', dest: 'name'});

View File

@@ -38,6 +38,15 @@ async function checkCard(reader) {
function runHalo(entryMode, args) {
nfc.on('reader', reader => {
reader.autoProcessing = false;
reader.on('error', err => {
console.log(`${reader.reader.name} an error occurred`, err);
});
if (args.reader && args.reader !== reader.reader.name) {
return;
}
if (args.name === "pcsc_detect") {
console.log('Detected PC/SC reader:', reader.reader.name);
@@ -45,8 +54,6 @@ function runHalo(entryMode, args) {
wsEventReaderConnected(reader);
}
reader.autoProcessing = false;
reader.on('card', card => {
if (entryMode === "server") {
(async () => {
@@ -121,11 +128,6 @@ function runHalo(entryMode, args) {
wsEventReaderDisconnected(reader);
}
});
reader.on('error', err => {
console.log(`${reader.reader.name} an error occurred`, err);
});
});
nfc.on('error', err => {