From ea46fe29d93fc6d77aaf623f8ce05a334b2f7a93 Mon Sep 17 00:00:00 2001 From: "Koushik K. Dutta" Date: Mon, 8 Mar 2010 02:58:04 -0800 Subject: [PATCH] install_zip command --- commands.c | 18 ++++++++++++++++++ extendedcommands.c | 5 +++-- extendedcommands.h | 4 ++++ 3 files changed, 25 insertions(+), 2 deletions(-) diff --git a/commands.c b/commands.c index 24bf242..7b2c2c1 100644 --- a/commands.c +++ b/commands.c @@ -836,6 +836,21 @@ cmd_print(const char *name, void *cookie, int argc, const char *argv[], return 0; } +static int +cmd_install_zip(const char *name, void *cookie, int argc, const char *argv[], + PermissionRequestList *permissions) +{ + UNUSED(cookie); + CHECK_WORDS(); + + if (argc != 1) { + LOGE("Command %s requires exactly one argument\n", name); + return 1; + } + + return install_zip(argv[0]); +} + /* * Function definitions */ @@ -1211,6 +1226,9 @@ register_update_commands(RecoveryCommandContext *ctx) ret = registerCommand("print", CMD_ARGS_WORDS, cmd_print, (void *)ctx); if (ret < 0) return ret; + ret = registerCommand("install_zip", CMD_ARGS_WORDS, cmd_install_zip, (void *)ctx); + if (ret < 0) return ret; + /* * Functions */ diff --git a/extendedcommands.c b/extendedcommands.c index 05ad475..e7ffb8f 100644 --- a/extendedcommands.c +++ b/extendedcommands.c @@ -50,7 +50,7 @@ void toggle_script_asserts() ui_print("Script Asserts: %s\n", script_assert_enabled ? "Enabled" : "Disabled"); } -void install_zip(const char* packagefilepath) +int install_zip(const char* packagefilepath) { ui_print("\n-- Installing: %s\n", packagefilepath); set_sdcard_update_bootloader_message(); @@ -59,13 +59,14 @@ void install_zip(const char* packagefilepath) if (status != INSTALL_SUCCESS) { ui_set_background(BACKGROUND_ICON_ERROR); ui_print("Installation aborted.\n"); - return; + return 1; } if (firmware_update_pending()) { ui_print("\nReboot via menu to complete\ninstallation.\n"); } ui_set_background(BACKGROUND_ICON_NONE); ui_print("\nInstall from sdcard complete.\n"); + return 0; } char* INSTALL_MENU_ITEMS[] = { "apply sdcard:update.zip", diff --git a/extendedcommands.h b/extendedcommands.h index 12d6107..ddb619c 100644 --- a/extendedcommands.h +++ b/extendedcommands.h @@ -30,3 +30,7 @@ do_mount_usb_storage(); void show_choose_zip_menu(); + +int +install_zip(const char* packagefilepath); +