Skip to content

Conversation

@tomkp
Copy link
Owner

@tomkp tomkp commented Dec 28, 2025

Summary

  • Add shell command to CLI that starts an interactive REPL session
  • Implement processShellCommand function to handle commands in the shell
  • Support for commands: help, select-pse, select-app, read-record, get-data, list-apps, info, quit/exit
  • Add comprehensive tests for all shell command handlers

Usage

emv shell

This starts an interactive session where users can issue EMV commands without prefixing each with emv:

emv> help
emv> select-pse
emv> list-apps
emv> select-app a0000000041010
emv> read-record 1 1
emv> quit

Test plan

  • All processShellCommand tests pass
  • help command shows available commands
  • quit/exit commands return exit action
  • Commands like select-pse, select-app, etc. delegate to existing functions
  • Empty input is ignored
  • Unknown commands show helpful error message
  • Lint passes
  • All 110 tests pass

Closes #65

Implements a REPL-style shell for interactive EMV operations:
- Add 'shell' command to CLI that starts an interactive session
- Add processShellCommand function to handle shell commands
- Support for help, select-pse, select-app, read-record, get-data,
  list-apps, info, quit/exit commands in shell
- Add tests for all shell command handlers
@tomkp tomkp merged commit 6d5e3a9 into master Dec 28, 2025
2 checks passed
@tomkp tomkp deleted the feature/interactive-shell branch December 28, 2025 20:55
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Add interactive shell mode

2 participants