A shell for those that prefer Macintosh Programmer's Workshop.
mpw
Go to file
2016-06-15 23:01:03 -04:00
cxx filesystem::canonical 2016-02-11 20:50:38 -05:00
etc extra stuff 2016-02-22 09:59:50 -05:00
.gitignore initial version 2016-01-27 10:43:34 -05:00
.travis.yml travis ci 2016-02-05 12:25:51 -05:00
builtins.cpp version builtin 2016-06-15 13:25:41 -04:00
builtins.h version builtin 2016-06-15 13:25:41 -04:00
CMakeLists.txt move cxx stuff into cxx directory 2016-02-11 15:46:40 -05:00
command.cpp support for Loop ... End, Break, and Continue. 2016-06-15 23:01:03 -04:00
command.h support for Loop ... End, Break, and Continue. 2016-06-15 23:01:03 -04:00
environment.cpp Environment::get 2016-02-11 15:49:19 -05:00
environment.h support for Loop ... End, Break, and Continue. 2016-06-15 23:01:03 -04:00
error.h support for Loop ... End, Break, and Continue. 2016-06-15 23:01:03 -04:00
fdset.h mpw-make support 2016-02-05 23:00:42 -05:00
lemon_base.h update phase2 2016-01-30 12:44:42 -05:00
lempar.cxx continuation prompt. 2016-02-04 21:57:17 -05:00
mpw-shell-command.rl initial version 2016-01-27 10:43:34 -05:00
mpw-shell-commands.c initial version 2016-01-27 10:43:34 -05:00
mpw-shell-execute.cpp lots of updates! 2016-02-01 20:38:29 -05:00
mpw-shell-expand.rl lots of updates! 2016-02-01 20:38:29 -05:00
mpw-shell-parser.cpp pathname conversion -- handle dev:null, dev:stdout, dev:stdin, dev:stderr 2016-02-10 23:51:37 -05:00
mpw-shell-quote.rl initial version 2016-01-27 10:43:34 -05:00
mpw-shell-read.rl . 2016-01-29 22:23:35 -05:00
mpw-shell-token.rl process vector of commands all at once. 2016-02-02 16:20:32 -05:00
mpw-shell.cpp use atomic variable for the control-c flag. 2016-02-22 12:03:58 -05:00
mpw-shell.h lots of updates! 2016-02-01 20:38:29 -05:00
mpw-shell.text initial version 2016-01-27 10:43:34 -05:00
pathnames.rl pathname conversion -- handle dev:null, dev:stdout, dev:stdin, dev:stderr 2016-02-10 23:51:37 -05:00
phase1.h fixes for travis ci / abort support. 2016-02-05 12:42:22 -05:00
phase1.rl clean up whitespace coalesce a bit 2016-02-10 23:53:41 -05:00
phase2-parser.lemon support for Loop ... End, Break, and Continue. 2016-06-15 23:01:03 -04:00
phase2.h fixes for travis ci / abort support. 2016-02-05 12:42:22 -05:00
phase2.rl support for Loop ... End, Break, and Continue. 2016-06-15 23:01:03 -04:00
README.md extra stuff 2016-02-22 09:59:50 -05:00
value.h initial version 2016-01-27 10:43:34 -05:00
value.rl initial version 2016-01-27 10:43:34 -05:00

MPW Shell

MPW Shell is a re-implementation of the Macintosh Programmer's Workshop shell. The primary reason is to support MPW Make (which generated shell script). It may also be useful for other things.

Supported features

  • If ... [Else If] ... [Else] ... End
  • Begin ... End
  • ( ... )
  • ||
  • &&
  • redirection

Not supported

  • pipes (|)
  • subshells (..., ...)
  • text-editing commands (search forward/backward, regular expressions, et cetera)

Builtin Commands

  • Directory
  • Echo
  • Export
  • Parameters
  • Quote
  • Set
  • Unexport
  • Unset
  • Which

Setup

  1. Install MPW. The mpw binary should be somewhere in your $PATH. It also checks /usr/local/bin/mpw and $HOME/mpw/bin/mpw
  2. Copy the Startup script to $HOME/mpw/. This script is executed when mpw-shell (or mpw-make) starts up (imagine that) and should be used to set environment variables.