MODULE Autostart;
IMPORT XML, XMLObjects, Commands, Configuration, KernelLog;
CONST
Trace = TRUE;
PROCEDURE Run*;
VAR enum: XMLObjects.Enumerator; p: ANY; e: XML.Element; value: XML.String;
autostart : XML.Element;
msg: ARRAY 128 OF CHAR; res: LONGINT;
BEGIN
autostart := Configuration.GetSection("Autostart");
IF autostart # NIL THEN
enum := autostart.GetContents();
WHILE enum.HasMoreElements() DO
p := enum.GetNext();
IF p IS XML.Element THEN
e := p(XML.Element); value := e.GetAttributeValue("value");
IF (value^ # "") THEN
IF Trace THEN KernelLog.String("Autostart: executing "); KernelLog.String(value^); KernelLog.Ln END;
Commands.Call(value^, {Commands.Wait}, res, msg);
IF (res # 0) THEN
KernelLog.String("Autostart: error executing "); KernelLog.String(value^); KernelLog.String(": ");
IF (msg # "") THEN KernelLog.String(msg)
ELSE KernelLog.String("res = "); KernelLog.Int(res, 0)
END;
KernelLog.Ln
END
END
END
END
END;
END Run;
END Autostart.
System.Free Autostart ~
EditTools.OpenAscii Configuration.XML~
Configuration.Init
Aos.Call Autostart.Run ~