From f96d300f0c236ebd4edb8e8b11aa948257cb7fb0 Mon Sep 17 00:00:00 2001 From: Patrick McDermott Date: Thu, 4 Apr 2019 18:25:51 -0400 Subject: [PATCH 3/6] cli: Optionally enforce argument to upgrade command This reverts and amends commit 673d7213175c2cf209b25c8eb2632941cdbb8519. Signed-off-by: Patrick McDermott --- CMakeLists.txt | 4 ++++ libopkg/opkg_cmd.c | 17 +++++++++++++++++ src/opkg-cl.c | 4 ++++ 3 files changed, 25 insertions(+) diff --git a/CMakeLists.txt b/CMakeLists.txt index 9acd6b4..dfb1b81 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -15,6 +15,7 @@ SET(VERSION "" CACHE STRING "Override version") OPTION(STATIC_UBOX "Statically link libubox" OFF) OPTION(BUILD_TESTS "Build test programs" ON) OPTION(ENABLE_USIGN "Enable usign support" ON) +OPTION(REQUIRE_UPGRADE_ARGS "Require arguments to upgrade command" ON) IF(NOT HOST_CPU) SET(HOST_CPU "${CMAKE_HOST_SYSTEM_PROCESSOR}") @@ -52,6 +53,9 @@ ADD_DEFINITIONS(-Os -Wall --std=gnu99 -g3 -Wmissing-declarations IF(ENABLE_USIGN) ADD_DEFINITIONS(-DHAVE_USIGN) ENDIF() +IF(REQUIRE_UPGRADE_ARGS) + ADD_DEFINITIONS(-DREQUIRE_UPGRADE_ARGS) +ENDIF() IF(WORDS_BIGENDIAN) ADD_DEFINITIONS(-DWORDS_BIGENDIAN) diff --git a/libopkg/opkg_cmd.c b/libopkg/opkg_cmd.c index c823df8..0a4180d 100644 --- a/libopkg/opkg_cmd.c +++ b/libopkg/opkg_cmd.c @@ -529,6 +529,19 @@ static int opkg_upgrade_cmd(int argc, char **argv) err = -1; } } +#if !defined(REQUIRE_UPGRADE_ARGS) + } else { + pkg_vec_t *installed = pkg_vec_alloc(); + + pkg_info_preinstall_check(); + pkg_hash_fetch_all_installed(installed); + for (i = 0; i < installed->len; i++) { + pkg = installed->pkgs[i]; + if (opkg_upgrade_pkg(pkg)) + err = -1; + } + pkg_vec_free(installed); +#endif } if (opkg_configure_packages(NULL)) @@ -1256,7 +1269,11 @@ static int opkg_print_architecture_cmd(int argc, char **argv) static opkg_cmd_t cmds[] = { {"update", 0, (opkg_cmd_fun_t) opkg_update_cmd, PFM_DESCRIPTION | PFM_SOURCE}, +#if defined(REQUIRE_UPGRADE_ARGS) {"upgrade", 1, (opkg_cmd_fun_t) opkg_upgrade_cmd, +#else + {"upgrade", 0, (opkg_cmd_fun_t) opkg_upgrade_cmd, +#endif PFM_DESCRIPTION | PFM_SOURCE}, {"list", 0, (opkg_cmd_fun_t) opkg_list_cmd, PFM_SOURCE}, {"list_installed", 0, (opkg_cmd_fun_t) opkg_list_installed_cmd, diff --git a/src/opkg-cl.c b/src/opkg-cl.c index a299514..6488e00 100644 --- a/src/opkg-cl.c +++ b/src/opkg-cl.c @@ -260,7 +260,11 @@ static void usage() printf("\nPackage Manipulation:\n"); printf ("\tupdate Update list of available packages\n"); +#if defined(REQUIRE_UPGRADE_ARGS) printf("\tupgrade Upgrade packages\n"); +#else + printf("\tupgrade Upgrade packages\n"); +#endif printf("\tinstall Install package(s)\n"); printf("\tconfigure Configure unpacked package(s)\n"); printf("\tremove Remove package(s)\n"); -- 2.11.0