Skip to content

reirep/MyLittleTerminalIsMagic

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

20 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

My little terminal is magic

This is just another command line interpreter, I'm working from time to time on it :) . At the moment, don't expect much, this is what EA would call a finished game (= an alpha ). To see a list of what it's currently capable of doing, look at the list below

⚠ - This terminal is currently working with the simple command but the pipes are broken: they will execute and pass data around but won't end.

⚠ - This terminal cannot handle yet the sigint (so, no way to interrupt a command).

License

This project is under the MIT license - license file coming soon.

All contribution are welcome. By making a contribution, you're giving me the right to the contributed code (to allow this project to be easier to maintain and not having to ask everyone their comment, opinion and feelings on a single change)

Roadmap

Currently implemented

  • execute simple commands
  • go to a dir: cd <dir>
  • go to the home dir: cd
  • show current folder: pwd
  • display # when it is a root terminal; $ in any other case
  • fork the command if is & at the end of the command
  • " block
  • ' block
  • expand the ~
  • list of the files of the current directory with * (except when the * is in a block)
  • list all the files and the sub-files with */** (except when */** is in a block)

To fix / Currently happening

  • piping with | -> the pipe doesn't stop gracefully, to fix

TODO

  • redirect the stream with the > notation
  • redirect the stream themselves with &1 and &2
  • use some stringbuilder when needed
  • manage ctrl + c to cut the underlying command -> https://gobyexample.com/signals
  • check that all the code handle utf8 correctly #rune
  • some way to manage the history
  • auto expand all the know command (use the history ?) use tab
  • add support for the left arrow key and right arrow key
  • add support for the end and home key and cursor wandering around

TODO non code-related

  • Create a license file