Difference between revisions of "Unit ShellUpdate"

From Ultibo.org
Jump to: navigation, search
 
(7 intermediate revisions by the same user not shown)
Line 5: Line 5:
 
----
 
----
  
'''Ultibo Update Shell extension unit'''
+
'''Ultibo Update Shell Extension unit'''
 
+
''To be documented''
+
  
 
=== Constants ===
 
=== Constants ===
Line 17: Line 15:
 
<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 82:
 
|-
 
|-
 
| <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 93:
 
|-
 
|-
 
| <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 111:
 
|-
 
|-
 
| <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;
 +
|-
 +
| <code>SHELL_UPDATE_ITEM_DEVICETREE_FILES = 'DEVICETREE';</code>
 
| &nbsp;
 
| &nbsp;
 
|-
 
|-
Line 115: Line 131:
 
|-
 
|-
 
| <code>SHELL_UPDATE_PARAMETER_FORCE = 'F';</code>
 
| <code>SHELL_UPDATE_PARAMETER_FORCE = 'F';</code>
 +
| &nbsp;
 +
|-
 +
| <code>SHELL_UPDATE_PARAMETER_CURRENT = 'C';</code>
 +
| &nbsp;
 +
|-
 +
| <code>HELL_UPDATE_PARAMETER_DTB = 'DTB';</code>
 
| &nbsp;
 
| &nbsp;
 
|-
 
|-
Line 120: Line 142:
 
</div></div>
 
</div></div>
 
<br />
 
<br />
 
 
=== Type definitions ===
 
=== Type definitions ===
 
----
 
----
Line 130: Line 151:
  
  
'''Shell update'''
+
'''Shell Update specific classes'''
  
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
+
{| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;"
 
+
<code>TShellUpdate = class(TShellCommand)</code>
+
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
+
{| class="wikitable" style="font-size: 14px; background: white;"
+
 
|-
 
|-
|colspan="2"|<div style="font-family: monospace,courier;">'''public'''</div>
+
| [[TShellUpdate|<code>TShellUpdate = class(TShellCommand)</code>]]
|-
+
| <code>constructor Create;</code>
+
| style="width: 50%;"|&nbsp;
+
|-
+
|colspan="2"|<div style="font-family: monospace,courier;">'''private'''</div>
+
|-
+
| <code>function GetLocal(const AName:String):String;</code>
+
| &nbsp;
+
|-
+
| <code>function GetRemote(const AName:String):String;</code>
+
| &nbsp;
+
|-
+
|colspan="2"|<div style="font-family: monospace,courier;">'''protected'''</div>
+
|-
+
| <code>function UpdateGet(AShell:TShell; ASession:TShellSession; const ALocal,ARemote:String; AForce:Boolean; var AUpdate:Boolean):Boolean;</code>
+
| &nbsp;
+
|-
+
| <code>function UpdateCheck(AShell:TShell; ASession:TShellSession; const ALocal,ARemote:String; AForce:Boolean; var AUpdate:Boolean):Boolean;</code>
+
| &nbsp;
+
|-
+
|colspan="2"|<div style="font-family: monospace,courier;">'''public'''</div>
+
|-
+
| <code>function DoHelp(AShell:TShell; ASession:TShellSession):Boolean; override;</code>
+
| &nbsp;
+
|-
+
| <code>function DoInfo(AShell:TShell; ASession:TShellSession):Boolean; override;</code>
+
| &nbsp;
+
|-
+
| <code>function DoCommand(AShell:TShell; ASession:TShellSession; AParameters:TStrings):Boolean; override;</code>
+
| &nbsp;
+
 
|-
 
|-
 
|}
 
|}
</div></div> 
 
 
<br />
 
<br />
  
Line 183: Line 169:
 
|-
 
|-
 
| <code>SHELL_UPDATE_HTTP_SERVER:String;</code>
 
| <code>SHELL_UPDATE_HTTP_SERVER:String;</code>
| style="width: 65%;"|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 189: Line 181:
 
|-
 
|-
 
| <code>SHELL_UPDATE_HTTP_PATH:String;</code>
 
| <code>SHELL_UPDATE_HTTP_PATH:String;</code>
| style="width: 65%;"|URL path on http server for updates (eg /updates/)
+
| style="width: 40%;"|URL path on http server for updates (eg /updates/)
 
|-
 
|-
 
|}
 
|}
Line 195: Line 187:
 
|-
 
|-
 
| <code>SHELL_UPDATE_LOCAL_PATH:String;</code>
 
| <code>SHELL_UPDATE_LOCAL_PATH:String;</code>
| style="width: 65%;"|Local path for updates (eg C:\)
+
| style="width: 40%;"|Local path for updates (eg C:\)
 
|-
 
|-
 
|}
 
|}
Line 201: Line 193:
 
|-
 
|-
 
| <code>SHELL_UPDATE_KERNEL_IMAGE:String;</code>
 
| <code>SHELL_UPDATE_KERNEL_IMAGE:String;</code>
| style="width: 65%;"|Name of the kernel image file for updates (eg kernel.img)
+
| style="width: 40%;"|Name of the kernel image file for updates (eg kernel.img)
 
|-
 
|-
 
|}
 
|}
Line 207: Line 199:
 
|-
 
|-
 
| <code>SHELL_UPDATE_KERNEL_CONFIG:String;</code>
 
| <code>SHELL_UPDATE_KERNEL_CONFIG:String;</code>
| style="width: 65%;"|Name of the kernel config file for updates (eg config.txt)
+
| style="width: 40%;"|Name of the kernel config file for updates (eg config.txt)
 
|-
 
|-
 
|}
 
|}
Line 213: Line 205:
 
|-
 
|-
 
| <code>SHELL_UPDATE_KERNEL_COMMAND:String;</code>
 
| <code>SHELL_UPDATE_KERNEL_COMMAND:String;</code>
| style="width: 65%;"|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)
 +
|-
 +
|}
 +
{| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;"
 +
|-
 +
| <code>SHELL_UPDATE_FIRMWARE_FILES:String;</code>
 +
| style="width: 40%;"|Name of the firmware files for updates (eg bootcode.bin,start.elf,fixup.dat)
 +
|-
 +
|}
 +
{| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;"
 +
|-
 +
| <code>SHELL_UPDATE_DTB_FILES:String;</code>
 +
| style="width: 40%;"|Name of the device tree files for updates (eg bcm2708-rpi-b.dtb,bcm2710-rpi-2-b.dtb,bcm2711-rpi-4-b.dtb)
 
|-
 
|-
 
|}
 
|}
Line 230: Line 234:
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
|-
 
|-
! '''Note'''
+
! Note
 
| None documented
 
| None documented
 
|-
 
|-

Latest revision as of 03:42, 13 September 2022

Return to Unit Reference


Description


Ultibo Update Shell Extension unit

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_ITEM_DEVICETREE_FILES = 'DEVICETREE';  


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


Type definitions


None defined

Class definitions



Shell Update specific classes

TShellUpdate = class(TShellCommand)


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)
SHELL_UPDATE_DTB_FILES:String; Name of the device tree files for updates (eg bcm2708-rpi-b.dtb,bcm2710-rpi-2-b.dtb,bcm2711-rpi-4-b.dtb)


Function declarations



Initialization functions

procedure ShellUpdateInit;
Description: To be documented
Note None documented


Return to Unit Reference