{ "no_proxy", OPKG_OPT_TYPE_STRING, &_conf.no_proxy },
{ "test", OPKG_OPT_TYPE_BOOL, &_conf.noaction },
{ "noaction", OPKG_OPT_TYPE_BOOL, &_conf.noaction },
+ { "download_only", OPKG_OPT_TYPE_BOOL, &_conf.download_only },
{ "nodeps", OPKG_OPT_TYPE_BOOL, &_conf.nodeps },
{ "offline_root", OPKG_OPT_TYPE_STRING, &_conf.offline_root },
{ "proxy_passwd", OPKG_OPT_TYPE_STRING, &_conf.proxy_passwd },
}
if (cmp > 0) {
- opkg_msg(NOTICE,
- "Not downgrading package %s on %s from %s to %s.\n",
- old_pkg->name, old_pkg->dest->name, old_version, new_version);
+ if(!conf->download_only)
+ opkg_msg(NOTICE,
+ "Not downgrading package %s on %s from %s to %s.\n",
+ old_pkg->name, old_pkg->dest->name, old_version, new_version);
rc = 1;
} else if (cmp < 0) {
- opkg_msg(NOTICE, "%s%s on %s from %s to %s...\n",
- message_out, pkg->name, old_pkg->dest->name, old_version, new_version);
+ if(!conf->download_only)
+ opkg_msg(NOTICE, "%s%s on %s from %s to %s...\n",
+ message_out, pkg->name, old_pkg->dest->name, old_version, new_version);
pkg->dest = old_pkg->dest;
rc = 0;
} else /* cmp == 0 */ {
if (conf->force_reinstall) {
- opkg_msg(NOTICE, "Reinstalling %s (%s) on %s...\n",
- pkg->name, new_version, old_pkg->dest->name);
+ if(!conf->download_only)
+ opkg_msg(NOTICE, "Reinstalling %s (%s) on %s...\n",
+ pkg->name, new_version, old_pkg->dest->name);
pkg->dest = old_pkg->dest;
rc = 0;
} else {
- opkg_msg(NOTICE, "%s (%s) already install on %s."
- " Not reinstalling.\n",
- pkg->name, new_version, old_pkg->dest->name);
+ if(!conf->download_only)
+ opkg_msg(NOTICE, "%s (%s) already install on %s."
+ " Not reinstalling.\n",
+ pkg->name, new_version, old_pkg->dest->name);
rc = 1;
}
}
strncpy( message_out,"Installing ",strlen("Installing ") );
char *version = pkg_version_str_alloc(pkg);
- opkg_msg(NOTICE, "%s%s (%s) to %s...\n", message_out,
- pkg->name, version, pkg->dest->name);
+ if(!conf->download_only)
+ opkg_msg(NOTICE, "%s%s (%s) to %s...\n", message_out,
+ pkg->name, version, pkg->dest->name);
free(version);
return 0;
}
free(file_sha256);
}
#endif
+ if(conf->download_only) {
+ if (conf->nodeps == 0) {
+ err = satisfy_dependencies_for(pkg);
+ if (err)
+ return -1;
+ }
+ return 0;
+ }
if (pkg->tmp_unpack_dir == NULL) {
if (unpack_pkg_control_files(pkg) == -1) {
ARGS_OPT_FORCE_REMOVAL_OF_ESSENTIAL_PACKAGES,
ARGS_OPT_FORCE_SPACE,
ARGS_OPT_NOACTION,
+ ARGS_OPT_DOWNLOAD_ONLY,
ARGS_OPT_NODEPS,
ARGS_OPT_AUTOREMOVE,
ARGS_OPT_CACHE,
{"force_removal_of_essential_packages", 0, 0,
ARGS_OPT_FORCE_REMOVAL_OF_ESSENTIAL_PACKAGES},
{"noaction", 0, 0, ARGS_OPT_NOACTION},
+ {"download-only", 0, 0, ARGS_OPT_DOWNLOAD_ONLY},
{"nodeps", 0, 0, ARGS_OPT_NODEPS},
{"offline", 1, 0, 'o'},
{"offline-root", 1, 0, 'o'},
case ARGS_OPT_NOACTION:
conf->noaction = 1;
break;
+ case ARGS_OPT_DOWNLOAD_ONLY:
+ conf->download_only = 1;
+ break;
case ':':
parse_err = -1;
break;
printf("\t--force-downgrade Allow opkg to downgrade packages\n");
printf("\t--force-space Disable free space checks\n");
printf("\t--noaction No action -- test only\n");
+ printf("\t--download-only No action -- download only\n");
printf("\t--nodeps Do not follow dependences\n");
printf("\t--force-removal-of-dependent-packages\n");
printf("\t Remove package and all dependencies\n");