Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Overview #1

Open
49 tasks
ianthomas23 opened this issue May 29, 2024 · 0 comments
Open
49 tasks

Overview #1

ianthomas23 opened this issue May 29, 2024 · 0 comments

Comments

@ianthomas23
Copy link
Member

ianthomas23 commented May 29, 2024

The basic framework is up and running. Here is an overview of the required functionality, to be updated with progress:

Command-line parsing/handling

  • Editing e.g. backspace to delete previous character
  • Tab completion of command and file names
  • History
  • Pasting into terminal
  • Prompts
  • Globbing
  • Virtual directories . and ..
  • Quote handling
  • Expanding env vars
  • Combining multiple commands using ;, && etc

Filesystem

  • Access to JupyterLite file system in a pluggable way, currently Contents.IManager but could change in future. Async.

Input/Output

  • Output to file and terminal
  • Terminal may optionally support color escape codes
  • Terminal output can vary according to number of columns e.g. ls
  • Stdin e.g. wc
  • Pipes
  • Redirection e.g. 2>&1
  • Discard output to /dev/null?
  • Passing keystrokes to some commands (e.g. less) whilst command is running

Command handling

  • Declaring command options that are handled in a generic way
  • Expanding options so that ls -al is the same as ls -a -l
  • Help (man) info auto generated from declared options
  • Exit codes

Commands

  • alias
  • cat
  • clear
  • cp
  • cd
  • echo
  • env
  • exit
  • export
  • grep
  • head
  • history
  • less
  • ls
  • man
  • mkdir
  • more
  • mv
  • pwd
  • rm
  • sed
  • sort
  • tail
  • touch
  • wc

Misc

  • Support a .bashrc or .bash_profile that is auto run?
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

No branches or pull requests

1 participant