diff options
author | graham.gower <graham.gower@e8e0d7a0-c8d9-11dd-a880-a1081c7ac358> | 2010-01-27 18:11:41 (EST) |
---|---|---|
committer | graham.gower <graham.gower@e8e0d7a0-c8d9-11dd-a880-a1081c7ac358> | 2010-01-27 18:11:41 (EST) |
commit | 2b9b8fa95e3cce41b718ee205d34105a46e4b695 (patch) | |
tree | e47f7c2e6cf09c1189760edbd447bec17ed2bbc4 /libopkg/opkg_cmd.c | |
parent | fc9af348b882e9758bcfbddde05e2733eddb794a (diff) |
Propagate errors up the call stack. Patch by Jens Erdmann <j.erdmann@road.de>.
git-svn-id: http://opkg.googlecode.com/svn/trunk@519 e8e0d7a0-c8d9-11dd-a880-a1081c7ac358
Diffstat (limited to 'libopkg/opkg_cmd.c')
-rw-r--r-- | libopkg/opkg_cmd.c | 25 |
1 files changed, 16 insertions, 9 deletions
diff --git a/libopkg/opkg_cmd.c b/libopkg/opkg_cmd.c index fceffdd..0fa471e 100644 --- a/libopkg/opkg_cmd.c +++ b/libopkg/opkg_cmd.c @@ -426,7 +426,7 @@ error: static int opkg_install_cmd(int argc, char **argv) { - int i; + int i, r; char *arg; int err=0; @@ -453,7 +453,9 @@ opkg_install_cmd(int argc, char **argv) } } - opkg_configure_packages(NULL); + r = opkg_configure_packages(NULL); + if (!err) + err = r; write_status_files_if_changed(); @@ -463,7 +465,7 @@ opkg_install_cmd(int argc, char **argv) static int opkg_upgrade_cmd(int argc, char **argv) { - int i; + int i, r; pkg_t *pkg; int err; @@ -511,7 +513,9 @@ opkg_upgrade_cmd(int argc, char **argv) pkg_vec_free(installed); } - opkg_configure_packages(NULL); + r = opkg_configure_packages(NULL); + if (!err) + err = r; write_status_files_if_changed(); @@ -521,7 +525,7 @@ opkg_upgrade_cmd(int argc, char **argv) static int opkg_download_cmd(int argc, char **argv) { - int i, err; + int i, err = 0; char *arg; pkg_t *pkg; @@ -545,7 +549,7 @@ opkg_download_cmd(int argc, char **argv) } } - return 0; + return err; } @@ -698,7 +702,7 @@ opkg_configure_cmd(int argc, char **argv) static int opkg_remove_cmd(int argc, char **argv) { - int i, a, done; + int i, a, done, r, err = 0; pkg_t *pkg; pkg_t *pkg_to_remove; pkg_vec_t *available; @@ -734,7 +738,10 @@ opkg_remove_cmd(int argc, char **argv) opkg_msg(ERROR, "Package %s not installed.\n", pkg->name); continue; } - opkg_remove_pkg(pkg_to_remove, 0); + r = opkg_remove_pkg(pkg_to_remove, 0); + if (!err) + err = r; + done = 1; } } @@ -745,7 +752,7 @@ opkg_remove_cmd(int argc, char **argv) opkg_msg(NOTICE, "No packages removed.\n"); write_status_files_if_changed(); - return 0; + return err; } static int |