PackageManager: Converted cmdline interface to C
authorMaarten Bosma <maarten@bosma.de>
Sat, 16 Apr 2005 11:11:52 +0000 (11:11 +0000)
committerMaarten Bosma <maarten@bosma.de>
Sat, 16 Apr 2005 11:11:52 +0000 (11:11 +0000)
svn path=/trunk/; revision=14632

rosapps/packmgr/cmd-line/main.c [new file with mode: 0644]
rosapps/packmgr/cmd-line/main.cpp [deleted file]
rosapps/packmgr/cmd-line/main.h
rosapps/packmgr/lib/download.cpp
rosapps/packmgr/lib/en.rc

diff --git a/rosapps/packmgr/cmd-line/main.c b/rosapps/packmgr/cmd-line/main.c
new file mode 100644 (file)
index 0000000..07e9f0e
--- /dev/null
@@ -0,0 +1,207 @@
+////////////////////////////////////////////////////////\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
+#include <stdio.h>\r
+\r
+\r
+int main (int argc, char **argv) \r
+{\r
+       wprintf(L"ReactOs PackageManager %d.%d.%d Commandline Interface \n\n", PACKMGR_VERSION_MAJOR, PACKMGR_VERSION_MINOR, PACKMGR_VERSION_PATCH_LEVEL);\r
+       Argv = argv; Argc = argc;\r
+\r
+       if(argc<2)\r
+               return Help();\r
+\r
+\r
+       // install a package\r
+       if (argv[1] == "install") \r
+               Install();\r
+\r
+       // install a package from source\r
+       else if (argv[1] == "src-inst")\r
+       {\r
+               wprintf(L"Sorry but I can't do that yet. \n");\r
+       }\r
+\r
+       // update a package\r
+       else if (argv[1] == "update")\r
+       {\r
+               wprintf(L"Sorry but I can't do that yet. \n");\r
+       }\r
+\r
+       // update everything\r
+       else if (argv[1] == "dist-upgrade")\r
+       {\r
+               wprintf(L"Sorry but I can't do that yet. \n");\r
+       }\r
+\r
+       // remove a package\r
+       else if (argv[1] == "remove")\r
+       {\r
+               wprintf(L"Sorry but I can't do that yet. \n");\r
+       }\r
+\r
+       // search for a package\r
+       else if (argv[1] == "show")\r
+       {\r
+               Show();\r
+       }\r
+\r
+       // search for a package\r
+       else if (argv[1] == "search")\r
+       {\r
+               wprintf(L"Sorry but I can't do that yet. \n");\r
+       }\r
+\r
+       else\r
+               Help();\r
+\r
+       //\r
+       wprintf(L"\n");\r
+       \r
+\r
+       return 0;\r
+}\r
+\r
+int Help (void)\r
+{\r
+       wprintf(L"Usage: ros-get [command] \n\n");\r
+\r
+       wprintf(L"Possible commands: \n");\r
+       wprintf(L"  install [package name] \t Installs a package \n\n");\r
+       wprintf(L"  show [package name] \t\t Shows you detailed information about a package \n");\r
+\r
+       wprintf(L"Currently unimplemented commands: \n");\r
+       wprintf(L"  src-install [package name] \t Installs a package from source code \n");\r
+       wprintf(L"  update [package name] \t Updates a package \n");\r
+       wprintf(L"  dist-update [package name] \t Updates a package \n");\r
+       wprintf(L"  remove [package name] \t Uninstalls a package \n\n");\r
+\r
+       wprintf(L"  search [search agrument] \t Finds a package \n");\r
+       wprintf(L"  list \t\t\t\t Lists all installed programs \n");\r
+\r
+       return 0;\r
+}\r
+\r
+int Ask (const WCHAR* question)\r
+{\r
+       // ask the user\r
+       wprintf(L"%s [y/n] ", question);\r
+       char answer = getchar();\r
+\r
+       // clear keybuffer\r
+       while(getchar()!='\n');\r
+       wprintf(L"\n");\r
+\r
+       // prozess answer\r
+       if (answer == 'y')\r
+               return 1;\r
+\r
+       else if (answer == '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
+               wprintf(PML_TransError(error));\r
+               return 0;\r
+       }\r
+               \r
+       // look up the item\r
+       for (i=2; i<Argc; i++)\r
+       {\r
+               int id = PML_FindItem(tree, Argv[i]);\r
+\r
+               if(id)\r
+               {\r
+                       PML_LoadPackage(tree, id, NULL);\r
+                       PML_SetAction(tree, id, 1, NULL, Ask);\r
+               }\r
+\r
+               else \r
+                       printf("Could not find the Package \"%s\"\n", Argv[i]);\r
+       }\r
+\r
+       // do it\r
+       error = PML_DoIt (tree, SetStatus, Ask);\r
+       if(error)\r
+       {\r
+               wprintf(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
+               wprintf(PML_TransError(error));\r
+               return 0;\r
+       }\r
+\r
+       // look up the item\r
+       for (i=2; i<Argc; i++)\r
+       {\r
+               int id = PML_FindItem(tree, Argv[i]);\r
+\r
+               if(id)\r
+                       printf(PML_GetDescription(tree, id));\r
+\r
+               else \r
+                       printf("Could not find the Package \"%s\"\n", Argv[i]);\r
+       }\r
+\r
+       // clean up\r
+       PML_CloseTree (tree);\r
+\r
+       return 0;\r
+}\r
diff --git a/rosapps/packmgr/cmd-line/main.cpp b/rosapps/packmgr/cmd-line/main.cpp
deleted file mode 100644 (file)
index 2a2b05a..0000000
+++ /dev/null
@@ -1,201 +0,0 @@
-////////////////////////////////////////////////////////\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
index 70b93a5..ab9d1f9 100644 (file)
@@ -4,13 +4,11 @@
 //                             main.cpp's lumber room :)\r
 ///////////////////////////////////////////////////\r
 \r
-#include "package.hpp"\r
+#include <package.h>\r
 \r
-#include <iostream>\r
-\r
-\r
-vector<string> cmdline;\r
-bool done = false;\r
+int Argc;\r
+char **Argv;\r
+BOOL done = FALSE;\r
 \r
 int Help (void);\r
 int Install (void);\r
index 8d450f3..51ab771 100644 (file)
@@ -53,7 +53,8 @@ char* PML_Download (const char* url, const char* server = "tree", const char* fi
 \r
        // get the url\r
        \r
-       if (!server);\r
+       if (!server)\r
+               strcpy(downl, "");\r
 \r
        else if(!strcmp(server, "tree")) \r
                strcpy(downl, tree_server);\r
index c7484ab..0eb4962 100644 (file)
@@ -17,7 +17,7 @@ BEGIN
 \r
   ERR_DEP1        "To install this package you have to install the following package(s) as well:\n\n"\r
   ERR_DEP2        "\nDo you want this ?"\r
-  ERR_READY       "You choosen to install %d package(s). To install them you have to read and agree with each of thier licences.\n\n Do you want still want to ?"\r
+  ERR_READY       "You choosen to install %d package(s). To install them you have to read and agree with each of thier licences. \n\nDo you want still want to ?"\r
 END\r
 \r
 /* EOF */\r