+++ /dev/null
-////////////////////////////////////////////////////////\r
-//\r
-// main.cpp\r
-// \r
-// Implementation of a Commandlne Interface\r
-// for the ReactOs Package Manager\r
-//\r
-// Maarten Bosma, 09.01.2004\r
-// maarten.paul@bosma.de\r
-//\r
-////////////////////////////////////////////////////////////////////\r
-\r
-#include "main.h"\r
-\r
-\r
-int main (int argc, char **argv) \r
-{\r
- cout << "ReactOs PackageManager " << PACKMGR_VERSION_MAJOR << "." << PACKMGR_VERSION_MINOR << "." << PACKMGR_VERSION_PATCH_LEVEL << " Commandline Interface \n\n";\r
-\r
- int i;\r
-\r
- if(argc<2)\r
- return Help();\r
-\r
- for (i=1; i<argc; i++)\r
- cmdline.push_back(argv[i]);\r
-\r
- // install a package\r
- if (cmdline[0] == "install") \r
- Install();\r
-\r
- // install a package from source\r
- else if (cmdline[0] == "src-inst")\r
- {\r
- cout << "Sorry but I can't do that yet. \n";\r
- }\r
-\r
- // update a package\r
- else if (cmdline[0] == "update")\r
- {\r
- cout << "Sorry but I can't do that yet. \n";\r
- }\r
-\r
- // update everything\r
- else if (cmdline[0] == "dist-upgrade")\r
- {\r
- cout << "Sorry but I can't do that yet. \n";\r
- }\r
-\r
- // remove a package\r
- else if (cmdline[0] == "remove")\r
- {\r
- cout << "Sorry but I can't do that yet. \n";\r
- }\r
-\r
- // search for a package\r
- else if (cmdline[0] == "show")\r
- {\r
- Show();\r
- }\r
-\r
- // search for a package\r
- else if (cmdline[0] == "search")\r
- {\r
- cout << "Sorry but I can't do that yet. \n";\r
- }\r
-\r
- else\r
- Help();\r
- \r
- return 0;\r
-}\r
-\r
-int Help (void)\r
-{\r
- cout << "Usage: ros-get [command] \n\n";\r
-\r
- cout << "Possible commands: \n";\r
- cout << " install [package name] \t Installs a package \n\n";\r
- cout << " show [package name] \t\t Shows you detailed information about a package \n";\r
-\r
- cout << "Currently unimplemented commands: \n";\r
- cout << " src-install [package name] \t Installs a package from source code \n";\r
- cout << " update [package name] \t Updates a package \n";\r
- cout << " dist-update [package name] \t Updates a package \n";\r
- cout << " remove [package name] \t Uninstalls a package \n\n";\r
-\r
- cout << " search [search agrument] \t Finds a package \n";\r
- cout << " list \t\t\t\t Lists all installed programs \n\n";\r
-\r
- return 0;\r
-}\r
-\r
-int Ask (const WCHAR* question)\r
-{\r
- char answer[255];\r
-\r
- wprintf(question);\r
-\r
- cout << " [y/n] ";\r
- cin >> answer;\r
- cout << endl;\r
-\r
- if (answer[0]=='y')\r
- return 1;\r
-\r
- else if (answer[0]=='n')\r
- return 0;\r
-\r
- return Ask(question);\r
-}\r
- \r
-int SetStatus (int status1, int status2, WCHAR* text)\r
-{\r
- if(text)\r
- wprintf(L"%s\n", text);\r
-\r
- // If the Status is 1000 things are done\r
- if(status1==1000)\r
- {\r
- wprintf(L"%s\n", PML_TransError(status2));\r
- done = true;\r
- }\r
-\r
- return 0;\r
-}\r
-\r
-int Install (void)\r
-{\r
- pTree tree;\r
- int i, error;\r
-\r
- // load the tree\r
- error = PML_LoadTree (&tree, "tree.xml", NULL);\r
- if(error)\r
- {\r
- cout << PML_TransError(error);\r
- return 0;\r
- }\r
- \r
- // look up the item\r
- for (i=1; (UINT)i<cmdline.size(); i++)\r
- {\r
- int id = PML_FindItem(tree, cmdline[i].c_str());\r
-\r
- if(id)\r
- PML_SetAction(tree, id, 1, NULL, Ask);\r
-\r
- else \r
- cout << "Could not find the Package \"" << cmdline[i] << "\"\n";\r
- }\r
-\r
- // do it\r
- error = PML_DoIt (tree, SetStatus, Ask);\r
- if(error)\r
- {\r
- wprintf(L"%s\n", PML_TransError(error));\r
- PML_CloseTree (tree);\r
- return 0;\r
- }\r
-\r
- // wait\r
- while (!done)\r
- Sleep(1000);\r
-\r
- // clean up\r
- PML_CloseTree (tree);\r
-\r
- return 0;\r
-}\r
-\r
-int Show (void)\r
-{\r
- pTree tree;\r
- int i, error;\r
-\r
- // load the tree\r
- error = PML_LoadTree (&tree, "tree.xml", NULL);\r
- if(error)\r
- {\r
- cout << PML_TransError(error);\r
- return 0;\r
- }\r
-\r
- // look up the item\r
- for (i=1; (UINT)i<cmdline.size(); i++)\r
- {\r
- int id = PML_FindItem(tree, cmdline[i].c_str());\r
-\r
- if(id)\r
- cout << PML_GetDescription (tree, id) << "\n";\r
-\r
- else \r
- cout << "Could not find the Package \"" << cmdline[i] << "\"\n";\r
- }\r
-\r
- // clean up\r
- PML_CloseTree (tree);\r
-\r
- return 0;\r
-}\r