home *** CD-ROM | disk | FTP | other *** search
-
- /** $VER: CmdShell.dmcs 1.1 (10.11.91)
- **
- ** Deluxe Music's command shell
- **
- ** Original by David N. Junod
- ** Modified by Bill Hawes
- ** Modified by Martin Taillefer
- ** Modified by Talin
- **/
-
- OPTIONS RESULTS
- OPTIONS FAILAT 100
- OPTIONS PROMPT "Cmd> "
-
-
- /* Display instructions */
- SAY 'Enter commands, or press CTRL-\ to exit.'
-
- /* Get input until the user closes the Command Shell */
- DO FOREVER
-
- /* Wait until the user types a command followed by RETURN */
- PARSE PULL cmdString
-
- SELECT
- WHEN (cmdString = "") | (UPPER(cmdString) = "Q") | (UPPER(cmdString) = "QUIT") THEN DO
- LEAVE
- END
-
- WHEN (cmdString = "?") | (UPPER(cmdString) = "HELP") THEN DO
- SAY 'Enter "HELP <command>" to obtain a command''s template.'
- SAY 'Enter CTRL-\ to close this window.'
- END;
-
- OTHERWISE DO
- CALL HandleCmd(cmdString)
- END;
-
- END
- END
-
- RETURN
-
-
- HandleCmd: PROCEDURE
- PARSE ARG cmdString
-
- /* Execute the command */
- cmdString
-
- /* See if the command succeeded */
- IF RC = 0 THEN DO
- IF symbol('RESULT') == "VAR" THEN DO
- SAY RESULT
- END
- RETURN
- END
-
- /* Wasn't a host command, try running it as an ARexx script */
- IF DMUSIC.LastError = 515 THEN DO
- ADDRESS REXX cmdString
-
- /* Wasn't an ARexx script, try running it as a CLI command */
- IF RC > 0 THEN DO
- ADDRESS COMMAND cmdString
- END
-
- END; ELSE DO
- IF RC > 0 THEN DO
- last = DMUSIC.LastError
-
- GetErrorInfo DMUSIC.LastError
- IF RC = 0 THEN
- msg = RESULT
- ELSE DO
- msg = ""
- END
-
- SAY '*** Error #'last': 'msg
- END
- END
-
- RETURN
- /* end of HandleCmd() */
-