Allow listing all services.
[nssm.git] / nssm.cpp
index b22cb92..ca79a02 100644 (file)
--- a/nssm.cpp
+++ b/nssm.cpp
@@ -265,14 +265,15 @@ int _tmain(int argc, TCHAR **argv) {
       create_messages();\r
       exit(pre_install_service(argc - 2, argv + 2));\r
     }\r
-    if (str_equiv(argv[1], _T("edit")) || str_equiv(argv[1], _T("get")) || str_equiv(argv[1], _T("set")) || str_equiv(argv[1], _T("reset")) || str_equiv(argv[1], _T("unset"))) {\r
+    if (str_equiv(argv[1], _T("edit")) || str_equiv(argv[1], _T("get")) || str_equiv(argv[1], _T("set")) || str_equiv(argv[1], _T("reset")) || str_equiv(argv[1], _T("unset")) || str_equiv(argv[1], _T("dump"))) {\r
       int ret = pre_edit_service(argc - 1, argv + 1);\r
       if (ret == 3 && ! is_admin && argc == 3) exit(elevate(argc, argv, NSSM_MESSAGE_NOT_ADMINISTRATOR_CANNOT_EDIT));\r
       /* There might be a password here. */\r
       for (int i = 0; i < argc; i++) SecureZeroMemory(argv[i], _tcslen(argv[i]) * sizeof(TCHAR));\r
       exit(ret);\r
     }\r
-    if (str_equiv(argv[1], _T("list"))) exit(list_nssm_services());\r
+    if (str_equiv(argv[1], _T("list"))) exit(list_nssm_services(argc - 2, argv + 2));\r
+    if (str_equiv(argv[1], _T("processes"))) exit(service_process_tree(argc - 2, argv + 2));\r
     if (str_equiv(argv[1], _T("remove"))) {\r
       if (! is_admin) exit(elevate(argc, argv, NSSM_MESSAGE_NOT_ADMINISTRATOR_CANNOT_REMOVE));\r
       exit(pre_remove_service(argc - 2, argv + 2));\r