// Copyright (c) 2000-2002 by Per Liden #include "pkgrm.h" #include int pkgrm::run(int argc, char** argv) { string o_package; string o_root; for (int i = 1; i < argc; i++) { string option(argv[i]); if (option == "-r" || option == "--root") { check_argument(argv, argc, i); o_root = argv[i + 1]; i++; } else if (option == "-v" || option == "--version") { print_version(); } else if (option == "-h" || option == "--help") { print_help(); } else if (option[0] == '-' || !o_package.empty()) { print_invalid_option(option); } else { o_package = option; } } if (o_package.empty()) print_option_missing(); // // Check UID // if (getuid()) { print_error() << "only root can remove packages" << endl; return EXIT_ERROR; } // // Remove package // db_open(o_root); if (!db_find_pkg(o_package)) { print_error() << "package " << o_package << " not installed" << endl; return EXIT_ERROR; } db_rm_pkg(o_package); db_commit(); return EXIT_OK; } void pkgrm::print_help() const { cout << "usage: " << name() << " [options] " << endl << "options:" << endl << " -r, --root specify alternative installation root" << endl << " -v, --version print version and exit" << endl << " -h, --help print help and exit" << endl; exit(EXIT_OK); }