Difference between revisions of "Unit ShellUpdate"

From Ultibo.org
Jump to: navigation, search
Line 17: Line 17:
 
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
| <code>SHELL_UPDATE_HTTP_DELIMITER = ':';</code>
 +
| style="width: 50%;"|&nbsp;
 
|-
 
|-
 
| <code>SHELL_UPDATE_HTTP_SEPARATOR = '/';</code>
 
| <code>SHELL_UPDATE_HTTP_SEPARATOR = '/';</code>
Line 81: Line 84:
 
|-
 
|-
 
| <code>SHELL_UPDATE_ITEM_COMMAND = 'COMMAND';</code>
 
| <code>SHELL_UPDATE_ITEM_COMMAND = 'COMMAND';</code>
 +
| &nbsp;
 +
|-
 +
| <code>SHELL_UPDATE_ITEM_FIRMWARE = 'FIRMWARE';</code>
 +
| &nbsp;
 +
|-
 +
| <code>SHELL_UPDATE_ITEM_FILE = 'FILE';</code>
 
| &nbsp;
 
| &nbsp;
 
|-
 
|-
Line 86: Line 95:
 
|-
 
|-
 
| <code>SHELL_UPDATE_ITEM_HTTP_SERVER = 'SERVER';</code>
 
| <code>SHELL_UPDATE_ITEM_HTTP_SERVER = 'SERVER';</code>
 +
| &nbsp;
 +
|-
 +
| <code>SHELL_UPDATE_ITEM_HTTP_PROXY = 'PROXY';</code>
 
| &nbsp;
 
| &nbsp;
 
|-
 
|-
Line 101: Line 113:
 
|-
 
|-
 
| <code>SHELL_UPDATE_ITEM_KERNEL_COMMAND = 'COMMAND';</code>
 
| <code>SHELL_UPDATE_ITEM_KERNEL_COMMAND = 'COMMAND';</code>
 +
| &nbsp;
 +
|-
 +
| <code>SHELL_UPDATE_ITEM_FIRMWARE_FILES = 'FIRMWARE';</code>
 
| &nbsp;
 
| &nbsp;
 
|-
 
|-
Line 115: Line 130:
 
|-
 
|-
 
| <code>SHELL_UPDATE_PARAMETER_FORCE = 'F';</code>
 
| <code>SHELL_UPDATE_PARAMETER_FORCE = 'F';</code>
 +
| &nbsp;
 +
|-
 +
| <code>SHELL_UPDATE_PARAMETER_CURRENT = 'C';</code>
 
| &nbsp;
 
| &nbsp;
 
|-
 
|-
Line 120: Line 138:
 
</div></div>
 
</div></div>
 
<br />
 
<br />
 
 
=== Type definitions ===
 
=== Type definitions ===
 
----
 
----
Line 145: Line 162:
 
|colspan="2"|<div style="font-family: monospace,courier;">'''private'''</div>
 
|colspan="2"|<div style="font-family: monospace,courier;">'''private'''</div>
 
|-
 
|-
| <code>function GetLocal(const AName:String):String;</code>
+
| <code>function GetList(const ANames:String):TStringList;</code>
 +
| &nbsp;
 +
|-
 +
| <code>function GetLocal(const AName:String; ACurrent:Boolean):String;</code>
 
| &nbsp;
 
| &nbsp;
 
|-
 
|-
 
| <code>function GetRemote(const AName:String):String;</code>
 
| <code>function GetRemote(const AName:String):String;</code>
 +
| &nbsp;
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
| <code>procedure SetProxy(AClient:THTTPClient);</code>
 
| &nbsp;
 
| &nbsp;
 
|-
 
|-
Line 184: Line 209:
 
| <code>SHELL_UPDATE_HTTP_SERVER:String;</code>
 
| <code>SHELL_UPDATE_HTTP_SERVER:String;</code>
 
| style="width: 40%;"|Name or IP of http server for updates (eg 192.168.0.1)
 
| style="width: 40%;"|Name or IP of http server for updates (eg 192.168.0.1)
 +
|-
 +
|}
 +
{| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;"
 +
|-
 +
| <code>SHELL_UPDATE_HTTP_PROXY:String;</code>
 +
| style="width: 40%;"|Name or IP and Port of http proxy server (eg 192.168.0.100:8080)
 
|-
 
|-
 
|}
 
|}
Line 214: Line 245:
 
| <code>SHELL_UPDATE_KERNEL_COMMAND:String;</code>
 
| <code>SHELL_UPDATE_KERNEL_COMMAND:String;</code>
 
| style="width: 40%;"|Name of the kernel command file for updates (eg cmdline.txt)
 
| style="width: 40%;"|Name of the kernel command file for updates (eg cmdline.txt)
 +
|-
 +
| <code>SHELL_UPDATE_FIRMWARE_FILES:String;</code>
 +
| style="width: 40%;"|Name of the firmware files for updates (eg bootcode.bin,start.elf,fixup.dat)
 
|-
 
|-
 
|}
 
|}

Revision as of 05:29, 27 March 2018

Return to Unit Reference


Description


Ultibo Update Shell extension unit

To be documented

Constants



Shell update specific constants SHELL_UPDATE_*
SHELL_UPDATE_HTTP_DELIMITER = ':';  
SHELL_UPDATE_HTTP_SEPARATOR = '/';  
SHELL_UPDATE_HTTP_PROTOCOL = 'http://';  
 
SHELL_UPDATE_EXTENSION_TMP = '.tmp';  
SHELL_UPDATE_EXTENSION_BAK = '.bak';  


Shell update command SHELL_UPDATE_COMMAND_*
SHELL_UPDATE_COMMAND_UPDATE = 'UPDATE';  
SHELL_UPDATE_COMMAND_WGET = 'WGET';  


Shell update action SHELL_UPDATE_ACTION_*
SHELL_UPDATE_ACTION_CHECK = 'CHECK';  
SHELL_UPDATE_ACTION_GET = 'GET';  
SHELL_UPDATE_ACTION_SET = 'SET';  


Shell update item SHELL_UPDATE_ITEM_*
SHELL_UPDATE_ITEM_ALL = 'ALL';  
SHELL_UPDATE_ITEM_KERNEL = 'KERNEL';  
SHELL_UPDATE_ITEM_CONFIG = 'CONFIG';  
SHELL_UPDATE_ITEM_COMMAND = 'COMMAND';  
SHELL_UPDATE_ITEM_FIRMWARE = 'FIRMWARE';  
SHELL_UPDATE_ITEM_FILE = 'FILE';  
 
SHELL_UPDATE_ITEM_HTTP_SERVER = 'SERVER';  
SHELL_UPDATE_ITEM_HTTP_PROXY = 'PROXY';  
SHELL_UPDATE_ITEM_HTTP_PATH = 'REMOTE';  
SHELL_UPDATE_ITEM_LOCAL_PATH = 'LOCAL';  
SHELL_UPDATE_ITEM_KERNEL_IMAGE = 'IMAGE';  
SHELL_UPDATE_ITEM_KERNEL_CONFIG = 'CONFIG';  
SHELL_UPDATE_ITEM_KERNEL_COMMAND = 'COMMAND';  
SHELL_UPDATE_ITEM_FIRMWARE_FILES = 'FIRMWARE';  


Shell update parameter SHELL_UPDATE_PARAMETER_*
SHELL_UPDATE_PARAMETER_REBOOT = 'R';  
SHELL_UPDATE_PARAMETER_FORCE = 'F';  
SHELL_UPDATE_PARAMETER_CURRENT = 'C';  


Type definitions


None defined

Class definitions



Shell update

TShellUpdate = class(TShellCommand)

public
constructor Create;  
private
function GetList(const ANames:String):TStringList;  
function GetLocal(const AName:String; ACurrent:Boolean):String;  
function GetRemote(const AName:String):String;  
 
procedure SetProxy(AClient:THTTPClient);  
protected
function UpdateGet(AShell:TShell; ASession:TShellSession; const ALocal,ARemote:String; AForce:Boolean; var AUpdate:Boolean):Boolean;  
function UpdateCheck(AShell:TShell; ASession:TShellSession; const ALocal,ARemote:String; AForce:Boolean; var AUpdate:Boolean):Boolean;  
public
function DoHelp(AShell:TShell; ASession:TShellSession):Boolean; override;  
function DoInfo(AShell:TShell; ASession:TShellSession):Boolean; override;  
function DoCommand(AShell:TShell; ASession:TShellSession; AParameters:TStrings):Boolean; override;  


Public variables



Shell update specific variables

SHELL_UPDATE_HTTP_SERVER:String; Name or IP of http server for updates (eg 192.168.0.1)
SHELL_UPDATE_HTTP_PROXY:String; Name or IP and Port of http proxy server (eg 192.168.0.100:8080)
SHELL_UPDATE_HTTP_PATH:String; URL path on http server for updates (eg /updates/)
SHELL_UPDATE_LOCAL_PATH:String; Local path for updates (eg C:\)
SHELL_UPDATE_KERNEL_IMAGE:String; Name of the kernel image file for updates (eg kernel.img)
SHELL_UPDATE_KERNEL_CONFIG:String; Name of the kernel config file for updates (eg config.txt)
SHELL_UPDATE_KERNEL_COMMAND:String; Name of the kernel command file for updates (eg cmdline.txt)
SHELL_UPDATE_FIRMWARE_FILES:String; Name of the firmware files for updates (eg bootcode.bin,start.elf,fixup.dat)


Function declarations



Initialization functions

procedure ShellUpdateInit;
Description: To be documented
Note None documented


Return to Unit Reference