int main(int argc, char **argv) { int ret = 0; pkgmgr_installer *pi = pkgmgr_installer_new(); _pi = pi; pkgmgr_installer_receive_request(pi, argc, argv); int req_type = pkgmgr_installer_get_request_type(pi); if (PKGMGR_REQ_INVALID >= req_type) return EINVAL; const char *pkg_info = pkgmgr_installer_get_request_info(pi); switch (req_type) { case PKGMGR_REQ_INSTALL: ret = __install_package(pkg_info); break; case PKGMGR_REQ_UNINSTALL: ret = __uninstall_package(pkg_info); break; case PKGMGR_REQ_CLEAR: ret = __clear_package(pkg_info); break; case PKGMGR_REQ_RECOVER: ret = __recover_package_system(); break; default: ret = EINVAL; } return ret; }
int main (int argc, char **argv) { int result; /* get request data */ pi = pkgmgr_installer_new (); if (!pi) return ENOMEM; result = pkgmgr_installer_receive_request (pi, argc, argv); if (result) { pkgmgr_installer_free (pi); return -result; } /* treat the request */ switch (pkgmgr_installer_get_request_type (pi)) { case PKGMGR_REQ_INSTALL: result = install (); break; case PKGMGR_REQ_UNINSTALL: result = uninstall (); break; case PKGMGR_REQ_REINSTALL: result = reinstall (); break; case PKGMGR_REQ_MOVE: result = move (); break; case PKGMGR_REQ_CLEAR: case PKGMGR_REQ_RECOVER: case PKGMGR_REQ_GETSIZE: case PKGMGR_REQ_UPGRADE: case PKGMGR_REQ_SMACK: default: /* unsupported operation */ result = EINVAL; break; } pkgmgr_installer_free (pi); return result; }
int _ri_parse_cmdline(int argc, char **argv, ri_frontend_cmdline_arg *data) { int req_cmd = INVALID_CMD; const char *pkg_name = NULL; int quiet = 0; const char *pkeyid = NULL; int ret = 0; pi = pkgmgr_installer_new(); if (!pi) { _d_msg(DEBUG_ERR, "Failure in creating the pkgmgr_installer object \n"); return RPM_INSTALLER_ERR_WRONG_PARAM; } ret = pkgmgr_installer_receive_request(pi, argc, argv); if (ret) { _d_msg(DEBUG_ERR, "pkgmgr_installer_receive_request failed \n"); return RPM_INSTALLER_ERR_WRONG_PARAM; } ret = pkgmgr_installer_get_request_type(pi); switch (ret) { case PKGMGR_REQ_INSTALL: req_cmd = INSTALL_CMD; break; case PKGMGR_REQ_UNINSTALL: req_cmd = DELETE_CMD; break; case PKGMGR_REQ_RECOVER: req_cmd = RECOVER_CMD; break; case PKGMGR_REQ_CLEAR: req_cmd = CLEARDATA_CMD; break; case PKGMGR_REQ_PERM: goto PARSEERROR; case PKGMGR_REQ_INVALID: req_cmd = INVALID_CMD; goto PARSEERROR; default: goto PARSEERROR; } if (req_cmd != RECOVER_CMD) { pkg_name = pkgmgr_installer_get_request_info(pi); if (!pkg_name) { _d_msg(DEBUG_ERR, "pkgmgr_installer_get_request_info failed \n"); return RPM_INSTALLER_ERR_WRONG_PARAM; } pkeyid = pkgmgr_installer_get_session_id(pi); if (!pkeyid) { _d_msg(DEBUG_ERR, "pkgmgr_installer_get_session_id failed \n"); return RPM_INSTALLER_ERR_WRONG_PARAM; } quiet = pkgmgr_installer_is_quiet(pi); if (quiet != 0 && quiet != 1) { _d_msg(DEBUG_ERR, "pkgmgr_installer_is_quiet failed \n"); return RPM_INSTALLER_ERR_WRONG_PARAM; } } if (req_cmd != INSTALL_CMD && req_cmd != DELETE_CMD && req_cmd != RECOVER_CMD && req_cmd != CLEARDATA_CMD) { _d_msg(DEBUG_ERR, "invalid command \n"); goto PARSEERROR; } data->req_cmd = req_cmd; data->pkg_name = (char *)pkg_name; data->quiet = quiet; data->keyid = (char *)pkeyid; return RPM_INSTALLER_SUCCESS; PARSEERROR: _d_msg(DEBUG_ERR, "Error in parsing input parameter\n"); __ri_show_usage(argv); return RPM_INSTALLER_ERR_WRONG_PARAM; }