diff --git a/cli/args_bridge.js b/cli/args_bridge.js index 34b40df..8759f6b 100644 --- a/cli/args_bridge.js +++ b/cli/args_bridge.js @@ -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(); diff --git a/cli/args_cli.js b/cli/args_cli.js index 4f289be..0a107e4 100644 --- a/cli/args_cli.js +++ b/cli/args_cli.js @@ -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'}); diff --git a/cli/cli.js b/cli/cli.js index 2cfce72..a358d06 100644 --- a/cli/cli.js +++ b/cli/cli.js @@ -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 => {