This is just a draft scratch-pad for my work in progress.
Virtually all of the commands in Edify are functions, and return data to the script when the function call is completed. You can use the returned value of the function to test for success or failure.
For example:
ifelse(mount("yaffs2", "MTD", "system", "/system") == "system", ui_print("Mounted!"), ui_print("Mount Failed!");
This command would attempt to mound the MTD partition named "system" to "/system".
If the mount succeeds, the script will display "Mounted!", otherwise it will display "Mount Failed!"
edify commands:
********************
| Functions from: platform/bootable/recovery.git/updater/install.c | |
| Function Name: | mount |
| Function Syntax: | mount(fs_type, partition_type, location, mount_point) |
| Parameter Details: |
fs_type = "yaffs2" | "ext4" partition_type="MTD" | "EMMC" location = partition | device mount_point = target folder to mount FS. |
| Description: |
Action: Mounts a filesystem in the defined mount point. Returns: The mount point. if successful, null if failed. |
| Example: | |
| Function Name: | is_mounted |
| Function Syntax: | is_mounted(mount_point) |
| Parameter Details: | mount_point = string, mount point to check if is mounted. |
| Description: |
Action: Checks if a filesystem is mounted. Returns: The mount point if it is mounted, otherwise, returns null. |
| Example: | |
| Function Name: | unmount |
| Function Syntax: | unmount(mount_point) |
| Parameter Details: | mount_point = string, mount point to unmount. |
| Description: |
Action: Unmounts the filesystem. Returns: The mount point that was dismounted if successful, otherwise it returns null. |
| Example: | |
| Function Name: | format |
| Function Syntax: | format(fs_type, partition_type, location) |
| Parameter Details: | fs_type = string,"yaffs2" | "ext4"
partition_type= string, "MTD" | "EMMC" location = string, partition | device |
| Description: | Formats a filesystem as specified. |
| Example: | |
| Function Name: | delete |
| Function Syntax: | delete(file1, file2, ..., fileN) |
| Parameter Details: | string, file to delete |
| Description: | Delete's a file. at least 1 file must be specified. Multiple files can be specified as multiple arguments. |
| Example: | |
| Function Name: | delete_recursive |
| Function Syntax: | delete_recursive(dir1, dir2,...,dirN) |
| Parameter Details: | string, directory to recursively delete. |
| Description: | Delete's a folder and all contents under that folder. At least 1 directory must be specified. Multiple directories can be specified as additional arguments. |
| Example: | |
| Function Name: | show_progress |
| Function Syntax: | show_progress(frac, sec) |
| Parameter Details: |
frac = fraction of progress completed sec = total seconds? |
| Description: | need to test. |
| Example: | |
| Function Name: | set_progress |
| Function Syntax: | set_prograss(frac) |
| Parameter Details: | frac=fraction of progress |
| Description: | I assume it updates progress bar with new progress, need to test. |
| Example: | |
| Function Name: | package_extract_dir |
| Function Syntax: | package_extract_dir(package_path, destination_path) |
| Parameter Details: |
package_path = string, directory in package to extract destination_path = string, target point to extract files to |
| Description: | Extract the all of the files in a directory in the package to the target specified. |
| Example: | |
| Function Name: | package_extract_file |
| Function Syntax: |
package_extract_file(package_path) or package_extract_file(package_path, destination_path) |
| Parameter Details: |
package_path = string, file in the package you want to extract destination_path, target folder to extract the file to. |
| Description: |
If a single argument is specified returns the contents of the file. Extract a single file from your update package to the target specified |
| Example: | |
| Function Name: | file_getprop |
| Function Syntax: | file_getprop(file, key) |
| Parameter Details: |
file = string, filename to check key = string, key in file to return the value of |
| Description: |
Get a property out of any file as log as the file format is "key"="value" where key is the name of the property stored in the file, and "value" i # = Comment lines Blank lines are OK key=value |
| Example: | |
| Function Name: | symlink |
| Function Syntax: | symlink(target, src1, src2, ..., srcN) |
| Parameter Details: |
target = string, the target of the symbolic link srcX = the symbolic link to create that points to the target |
| Description: |
Unlinks any existing symbolic links before creating the new symbolic links. |
| Example: | |
| Function Name: | set_perm |
| Function Syntax: | set_perm(uid, gid, mode, file1, file2, ..., fileN) |
| Parameter Details: |
uid = user id gid = group id mode = permission mode fileX = file to set permission on |
| Description: | Set permissions of a file or set of files specified. At least 1 file must be specified (the first four parameters are required) |
| Example: | |
| Function Name: | set_perm_recursive |
| Function Syntax: | set_perm_recursive(uid, gid, dirmode, filemode, dir1, dir2, ...dirN) |
| Parameter Details: |
uid = user id gid = group id dirmode = permission to set to directories contained within the specified directory filemode = permission to set to files contained within the specified directory dirX = directory to set permission on |
| Description: | Set permissions of a directory or set of directories and all files and folders within them. At least 1 directory must be specified (The first 5 parameters are required.) |
| Example: | |
| Function Name: | getprop |
| Function Syntax: | getprop(key) |
| Parameter Details: | key = string, the property you want the system to return |
| Description: | This function returns the value of the property specified. This is used to query platform information from the build.props file. |
| Example: | |
| Function Name: | write_raw_image |
| Function Syntax: | write_raw_image(file, partition) |
| Parameter Details: |
file - string, the source .img file to be read from partition - string, the destination partition to write the .img file to |
| Description: | This function writes an img file to a partition. |
| Example: | |
| Function Name: | apply_patch |
| Function Syntax: | apply_patch(srcfile, tgtfile, tgtsha1, tgtsize, sha1_1, patch_1, ..., sha1_x, patch1_x) |
| Parameter Details: |
srcfile - string, source file to be patched (file to read in) tgtfile - string, destination file to write the patched file to tgtsha1 - string, sha1 hash of the target file as it should hash out after the patches apply properly sha1_x - string, sha1 hash of the patch data that's to be written to the target file patch1_x- string, actual patch to apply to the target file |
| Description: | This function is used to apply patches to a file. I need to research the format of the patch string, and also, if my assumptions on what the parameters mean are correct. need to check source code for the "applypatch" function that is called from here/ |
| Example: | |
| Function Name: | apply_patch_check |
| Function Syntax: | apply_patch_check(file, sha1_1, ..., sha1_x) |
| Parameter Details: |
file - string, file to check sha1_x - hash to check for? |
| Description: | Either checks if a file has been properly patched, or checks if a file can be patched. Need to check the source code of the "applypatch_check" function that is called from here. |
| Example: | |
| Function Name: | apply_patch_space |
| Function Syntax: | apply_patch_space(bytes) |
| Parameter Details: | bytes = number of bytes to check for |
| Description: | Checks the cache to verify that there is enough space to write the patched files to it and returns something. Need to test this function to verifyre |
| Example: | |
| Function Name: | read_file |
| Function Syntax: | read_file(filename) |
| Parameter Details: | filename - string, the filename to read the contents of |
| Description: | This function returns the contents of a file. |
| Example: | |
| Function Name: | sha1_check |
| Function Syntax: |
sha1_check(data) or sha1_check(data, sha1_hex, ..., sha1_hexN) |
| Parameter Details: |
data - the contents of file to calculate the sha1 hash of - must be in the read_file format sha1_hexN - A particular sha1_hex string that you want the file data to match |
| Description: | If only data is specified, then the function returns the sha1_hex string of the data. The optional parameters are used if you want to verify that the file you are checking for is one of a list of hashes. It reutrns the hash it matches, or returns nothing if it doesn't match any of the mentioned hashses. |
| Example: | |
| Function Name: | ui_print |
| Function Syntax: | ui_print(msg1, ..., msgN) |
| Parameter Details: | msg - String, message to be outputted to the user during the patch process |
| Description: | This function prints/echo's a message to the console while the script is running. At least 1 parameter needs to be specified, you can specify additional msg parameters and they will be concatenated to the output. |
| Example: | |
| Function Name: | run_program |
| Function Syntax: | run_program(prog, arg1, .., argN) |
| Parameter Details: |
prog - string, program to execute argN - string, arguments for the program that is being executed |
| Description: | Executes a program with the arguments specified. Returns a string, I assume it is the buffer of the stdout of the program executed, need to test. |
| Example: | |
| Functions from: platform/bootable/recovery.git/edify/expr.c | |
| Function Name: | ifelse |
| Function Syntax: | ifelse(condition, truecondition, falsecondition) |
| Parameter Details: |
condition - an expression to evaluate truecondition - Edify script block to execute if true falsecodnition - Edify script block to execute if false |
| Description: | This is the if-then construct of the Edify scripting language. The truecondition or falsecondition arguments can be a single edify command or a script block. Script blocks can be formed by enclosing the parameter with parenthesis, and seperating the commands with semicolons. |
| Example: |
ifelse("true",(ui_print("Line 1");ui_print("Line 2");),ui_print("Won't See This)); since the condition is "true", Edify will evaluate the second parameter (which is underlined). Notice the open and close parenthesis turns that whole script block into one paremeter. The third parameter will not be evaluated. |
| Function Name: | abort |
| Function Syntax: | abort() |
| Parameter Details: | no paremeters |
| Description: | Aborts script execution. |
| Example: | |
| Function Name: | assert |
| Function Syntax: | assert(condition) |
| Parameter Details: | condition - boolean |
| Description: | If condition evaluates to false, stops script execution, otherwise continues processing. |
| Example: | |
| Function Name: | concat |
| Function Syntax: | |
| Parameter Details: | |
| Description: | |
| Example: | |
| Function Name: | is_substring |
| Function Syntax: | |
| Parameter Details: | |
| Description: | |
| Example: | |
| Function Name: | stdout |
| Function Syntax: | |
| Parameter Details: | |
| Description: | |
| Example: | |
| Function Name: | sleep |
| Function Syntax: | |
| Parameter Details: | |
| Description: | |
| Example: | |
| Function Name: | less_than_int |
| Function Syntax: | |
| Parameter Details: | |
| Description: | |
| Example: | |
| Function Name: | greater_than_int |
| Function Syntax: | |
| Parameter Details: | |
| Description: | |
| Example: | |
| Next > |
|---|
Last Updated on Thursday, 19 May 2011 21:57.


