Unit Shell

From Ultibo.org
Revision as of 04:43, 31 August 2021 by Ultibo (Talk | contribs)

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

Return to Unit Reference


Description


Ultibo Generic Shell unit

Constants



Shell specific constants SHELL_*
SHELL_LINE_END = Chr(13) + Chr(10); {CR LF}  
 
SHELL_DEFAULT_BANNER = 'Ultibo Core (Release: ' + ULTIBO_RELEASE_NAME + ' Version: ' + ULTIBO_RELEASE_VERSION + ' Date: ' + ULTIBO_RELEASE_DATE + ')';  
SHELL_DEFAULT_PROMPT = '>';  
SHELL_DEFAULT_ERROR = 'Huh?';  


Shell flag SHELL_FLAG_*
SHELL_FLAG_NONE = $00000000;  
SHELL_FLAG_CLEAR = $00000001;  
SHELL_FLAG_SIZE = $00000002;  
SHELL_FLAG_CURSOR = $00000004;  
SHELL_FLAG_COLORS = $00000008;  
SHELL_FLAG_COORDINATES = $00000010;  


Shell cursor mode SHELL_CURSOR_MODE_*
SHELL_CURSOR_MODE_INSERT = 0;  
SHELL_CURSOR_MODE_OVERWRITE = 1;  


Shell cursor shape SHELL_CURSOR_SHAPE_*
SHELL_CURSOR_SHAPE_LINE = 0;  
SHELL_CURSOR_SHAPE_BAR = 1;  
SHELL_CURSOR_SHAPE_BLOCK = 2;  


Shell session flag SHELL_SESSION_FLAG_*
SHELL_SESSION_FLAG_NONE = $00000000;  


Shell command flag SHELL_COMMAND_FLAG_*
SHELL_COMMAND_FLAG_NONE = $00000000;  
SHELL_COMMAND_FLAG_HIDDEN = $00000001; Hidden command, do not show in HELP or INFO
SHELL_COMMAND_FLAG_HELP = $00000002; Command has HELP available
SHELL_COMMAND_FLAG_INFO = $00000004; Command has INFO available
SHELL_COMMAND_FLAG_DEFAULT = $00000008; Default command, pass unknown commands to this before showing error
SHELL_COMMAND_FLAG_EXTENDED = $00000008; Extended command, pass command name to command for extended handling
SHELL_COMMAND_FLAG_COMPLETION = $00000008; Command supports auto completion


Shell alias flag SHELL_ALIAS_FLAG_*
SHELL_ALIAS_FLAG_NONE = $00000000;  
SHELL_ALIAS_FLAG_HIDDEN = $00000001; Hidden alias, do not show in HELP or INFO


Shell command SHELL_COMMAND_*
SHELL_COMMAND_HELP = 'HELP';  
SHELL_COMMAND_INFO = 'INFO';  
SHELL_COMMAND_VER = 'VER';  
SHELL_COMMAND_TIME = 'TIME';  
SHELL_COMMAND_CLS = 'CLS';  
SHELL_COMMAND_RESTART = 'RESTART';  
SHELL_COMMAND_SHUTDOWN = 'SHUTDOWN';  
SHELL_COMMAND_CPU = 'CPU';  
SHELL_COMMAND_UPTIME = 'UPTIME';  
SHELL_COMMAND_WORKER = 'WORKER';  
SHELL_COMMAND_THREAD = 'THREAD';  
SHELL_COMMAND_MEMORY = 'MEMORY';  
SHELL_COMMAND_DEVICE = 'DEVICE';  


Shell alias SHELL_ALIAS_*
SHELL_ALIAS_HELP = '?';  
SHELL_ALIAS_VERSION = 'VERSION';  
SHELL_ALIAS_CLEAR = 'CLEAR';  
SHELL_ALIAS_REBOOT = 'REBOOT';  


Shell history SHELL_HISTORY_*
SHELL_HISTORY_MAX_COUNT = 100;  


Shell logging SHELL_LOG_*
SHELL_LOG_LEVEL_DEBUG = LOG_LEVEL_DEBUG; Shell debugging messages
SHELL_LOG_LEVEL_INFO = LOG_LEVEL_INFO; Shell informational messages
SHELL_LOG_LEVEL_WARN = LOG_LEVEL_WARN; Shell warning messages
SHELL_LOG_LEVEL_ERROR = LOG_LEVEL_ERROR; Shell error messages
SHELL_LOG_LEVEL_NONE = LOG_LEVEL_NONE; No Shell messages


Type definitions


None defined

Class definitions



Shell specific classes

TShellManager = class(TObject)
TShell = class(TListObject)
TShellSession = class(TListObject)
TShellCommand = class(TListObject)
TShellAlias = class(TListObject)
TShellHistory = class(TListObject)
TShellCommandHelp = class(TShellCommand)
TShellCommandInfo = class(TShellCommand)
TShellCommandVer = class(TShellCommand)
TShellCommandTime = class(TShellCommand)
TShellCommandClear = class(TShellCommand)
TShellCommandRestart = class(TShellCommand)
TShellCommandShutdown = class(TShellCommand)
TShellCommandUptime = class(TShellCommand)
TShellCommandThreads = class(TShellCommand)
TShellCommandMemory = class(TShellCommand)
TShellCommandDevices = class(TShellCommand)


Public variables



Shell logging

SHELL_DEFAULT_LOG_LEVEL:LongWord = SHELL_LOG_LEVEL_DEBUG; Minimum level for Shell messages. Only messages with level greater than or equal to this will be printed.
SHELL_LOG_ENABLED:Boolean;


Function declarations



Initialization functions

procedure ShellInit;
Description: To be documented
Note None documented


Shell functions

function ShellGetShell(APrevious:TShell; ALock,AUnlock:Boolean):TShell;
Description: To be documented
Note None documented


function ShellFindShell(const AName:String):TShell;
Description: To be documented
Note None documented


function ShellRegisterShell(AShell:TShell):Boolean;
Description: To be documented
Note None documented


function ShellDeregisterShell(AShell:TShell):Boolean;
Description: To be documented
Note None documented


function ShellGetCommand(APrevious:TShellCommand; ALock,AUnlock:Boolean):TShellCommand;
Description: To be documented
Note None documented


function ShellFindCommand(const AName:String):TShellCommand;
Description: To be documented
Note None documented


function ShellRegisterCommand(ACommand:TShellCommand):Boolean;
Description: To be documented
Note None documented


function ShellDeregisterCommand(ACommand:TShellCommand):Boolean;
Description: To be documented
Note None documented


Shell helper functions

procedure ShellLog(Level:LongWord; const AText:String);
Description: To be documented
Note None documented


procedure ShellLogInfo(const AText:String); inline;
Description: To be documented
Note None documented


procedure ShellLogWarn(const AText:String); inline;
Description: To be documented
Note None documented


procedure ShellLogError(const AText:String); inline;
Description: To be documented
Note None documented


procedure ShellLogDebug(const AText:String); inline;
Description: To be documented
Note None documented


Return to Unit Reference