summaryrefslogtreecommitdiffstats
path: root/libopkg/opkg_cmd.c
diff options
context:
space:
mode:
authorgraham.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)
commit2b9b8fa95e3cce41b718ee205d34105a46e4b695 (patch)
treee47f7c2e6cf09c1189760edbd447bec17ed2bbc4 /libopkg/opkg_cmd.c
parentfc9af348b882e9758bcfbddde05e2733eddb794a (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.c25
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