コード例 #1
0
ファイル: Program.cs プロジェクト: Fox-Alpha/checkAppVersion
        /// <summary>
        /// Prüft den Equals Parameter auf gültigkeit
        /// </summary>
        static void check_equalsParameters()
        {
            cmdActionArgsEqualType result;
            string value = "";

            dicCmdArgs.TryGetValue("equals", out value);

            foreach (string enumarg in Enum.GetNames(typeof(cmdActionArgsEqualType)))
            {
                if (!string.IsNullOrWhiteSpace(value) && value.ToLower() == enumarg.ToLower())
                {
                    Debug.WriteLine("{0} = {1}", enumarg, value);
                    Enum.TryParse(enumarg, out result);
                    if (equalType == cmdActionArgsEqualType.NONE)
                    {
                        equalType = result;
                    }
                    else
                    {
                        equalType = equalType | result;
                    }
                }
            }
            Debug.WriteLine("Equals = {0}", equalType);
        }
コード例 #2
0
ファイル: Program.cs プロジェクト: Fox-Alpha/checkAppVersion
        /// <summary>
        /// Prüft den Equals Parameter auf gültigkeit
        /// </summary>
        static void check_equalsParameters()
        {
            cmdActionArgsEqualType result;
            string value = "";
            dicCmdArgs.TryGetValue("equals", out value);

            foreach (string enumarg in Enum.GetNames(typeof(cmdActionArgsEqualType)))
            {
                if (!string.IsNullOrWhiteSpace(value) && value.ToLower() == enumarg.ToLower())
                {
                    Debug.WriteLine("{0} = {1}", enumarg, value);
                    Enum.TryParse(enumarg, out result);
                    if (equalType == cmdActionArgsEqualType.NONE)
                    {
                        equalType = result;
                    }
                    else
                        equalType = equalType | result;
                }
            }
            Debug.WriteLine("Equals = {0}", equalType);
        }
コード例 #3
0
ファイル: Program.cs プロジェクト: Fox-Alpha/checkAppVersion
        /// <summary>
        /// Main Funktion der Anwendung
        /// </summary>
        /// <param name="args"></param>
        /// <returns></returns>
        /// Parameter Zum Debuggen: -process=AM5 -version=1.8.0.70 -compare=Major,Build,private
        public static int Main(string[] args)
        {
            string prz, ver, cmp = "";

//			Console.WriteLine("Nagios Client - NSClient++ App");
            Console.Title = "Nagios Client - NSClient++ App";

            compareType = cmdActionArgsCompareType.NONE;
            equalType   = cmdActionArgsEqualType.NONE;
#if DEBUG
            Console.WriteLine(Environment.CommandLine);
            Debug.WriteLine(Environment.CommandLine);
#endif
            if (!check_cmdLineArgs())
            {
                //printUsage();
                Console.WriteLine("Es wurden keine Parameter übergeben. \nEs muss mindestens ein Parameter für den gesuchten Prozess angegeben werden\n\t -process[PROZESSNAME]");
                return((int)nagiosStatus.Unknown);
            }
            else
            {
                Console.WriteLine("BlaBlubb");
            }

            //  Es muss mindestens ein Prozessname angegeben sein
            if (dicCmdArgs.TryGetValue("process", out prz))
            {
                //  Wenn eine Version angegeben ist, dann Vergleich durchführem
                if (dicCmdArgs.TryGetValue("version", out ver))
                {
                    //  Für den Vergleich muss die Version mit angegeben sein
                    if (dicCmdArgs.TryGetValue("compare", out cmp))
                    {
                        if (!string.IsNullOrWhiteSpace(cmp))
                        {
                            foreach (string str in cmp.Split(','))
                            {
                                if (!check_compareParameters(str))
                                {
                                    Console.WriteLine("Der angegebene vergleichs Parameter {0} ist ungültig", str);
                                    printUsage();
                                    return((int)nagiosStatus.Unknown);
                                }
                            }
                        }
                    }
                    else
                    {
                        //  Kein compare Parameter angegeben
                    }
                }

#if DEBUG
                Console.WriteLine(string.Format("Main() - Parameter: -version: '{0}' | -process: '{1}' | compare: '{2}' | equals: '{3}'",
                                                !string.IsNullOrWhiteSpace(ver) ? ver : "LEER",
                                                !string.IsNullOrWhiteSpace(prz) ? prz : "LEER",
                                                !string.IsNullOrWhiteSpace(cmp) ? cmp : "LEER",
                                                "N/A"));
                Debug.WriteLine(string.Format("Main() - Parameter: -version: '{0}' | -process: '{1}' | compare: '{2}' | equals: '{3}'",
                                              !string.IsNullOrWhiteSpace(ver) ? ver : "LEER",
                                              !string.IsNullOrWhiteSpace(prz) ? prz : "LEER",
                                              !string.IsNullOrWhiteSpace(cmp) ? cmp : "LEER",
                                              "N/A"));
#endif
                //  Wenn keine Version vorhanden ist,
                //  dann nur ausgabe der Version vom Prozes
                if (!string.IsNullOrWhiteSpace(prz))
                {
                    string strVersion;
                    //string strVerNeed;
                    bool equal = false;;
#if DEBUG
                    int[] iVerPrz;
                    int[] iVerNeed;
#endif
                    if (!check_ProcessIsRunning(prz, out strVersion))
                    {
                        Console.WriteLine("'Es muss mindestens der Name eines Prozesses angegeben werden oder der angegebene Prozess ist nicht gestartet'");
                        printUsage();
#if DEBUG
                        Console.Write("Press any key to continue . . . ");
                        Console.ReadKey(true);
#endif
                        status = (int)nagiosStatus.Unknown;
                    }
                    else
                    {
                        if (!string.IsNullOrWhiteSpace(ver))
                        {
                            if ((compareType & cmdActionArgsCompareType.TEXT) != 0)
                            {
                                equal = check_VersionNumbers(strVersion, ver);
                            }
                            else
                            {
#if DEBUG
                                iVerPrz  = strVersion2IntArray(strVersion);
                                iVerNeed = strVersion2IntArray(ver);
                                equal    = check_VersionNumbers(iVerPrz, iVerNeed);
#else
                                equal = check_VersionNumbers(strVersion2IntArray(strVersion), strVersion2IntArray(ver));
#endif
                            }
                            status = equal ? (int)nagiosStatus.Ok : (int)nagiosStatus.Critical;

#if DEBUG
                            if (equal)
                            {
                                Debug.WriteLine(string.Format("Version ist OK (Erf. {0} ({2}) / App {1})", ver, strVersion, compareType));
                            }
                            else
                            {
                                Debug.WriteLine(string.Format("Version ist NOK (Erf. {0} ({2}) / App {1})", ver, strVersion, compareType));
                            }
#endif

                            Console.WriteLine(string.Format("Version ist {3}|'(Erforderlich {0} ({2}) / Anwendung {1})'", ver, strVersion, compareType, equal ? "OK" : "NOK", status));
                        }
                        else
                        {
                            Console.WriteLine(string.Format("'Version von {1} lautet {0}'", strVersion, prz));
                            status = (int)nagiosStatus.Ok;
                        }
                    }

#if DEBUG
                    Console.Write("Press any key to continue . . . ");
                    Console.ReadKey(true);
#endif
                    return(status);
                }
            }
            else
            {
                Console.WriteLine("Es muss mindestens der Name eines Prozesses angegeben werden oder der angegebene Prozess ist nicht gestartet");
                printUsage();
            }

            return((int)nagiosStatus.Ok);
        }
コード例 #4
0
ファイル: Program.cs プロジェクト: Fox-Alpha/checkAppVersion
        /// <summary>
        /// Main Funktion der Anwendung
        /// </summary>
        /// <param name="args"></param>
        /// <returns></returns>
        /// Parameter Zum Debuggen: -process=AM5 -version=1.8.0.70 -compare=Major,Build,private 
        public static int Main(string[] args)
        {
            string prz, ver, cmp = "";

            //			Console.WriteLine("Nagios Client - NSClient++ App");
            Console.Title = "Nagios Client - NSClient++ App";

            compareType = cmdActionArgsCompareType.NONE;
            equalType = cmdActionArgsEqualType.NONE;
            #if DEBUG
            Console.WriteLine(Environment.CommandLine);
            Debug.WriteLine(Environment.CommandLine);
            #endif
            if(!check_cmdLineArgs())
            {
                //printUsage();
                Console.WriteLine("Es wurden keine Parameter übergeben. \nEs muss mindestens ein Parameter für den gesuchten Prozess angegeben werden\n\t -process[PROZESSNAME]");
                return (int)nagiosStatus.Unknown;
            }
            else
                Console.WriteLine("BlaBlubb");

            //  Es muss mindestens ein Prozessname angegeben sein
            if (dicCmdArgs.TryGetValue("process", out prz))
            {
                //  Wenn eine Version angegeben ist, dann Vergleich durchführem
                if (dicCmdArgs.TryGetValue("version", out ver))
                {
                    //  Für den Vergleich muss die Version mit angegeben sein
                    if (dicCmdArgs.TryGetValue("compare", out cmp))
                    {
                        if (!string.IsNullOrWhiteSpace(cmp))
                        {
                            foreach (string str in cmp.Split(','))
                            {
                                if(!check_compareParameters(str))
                                {
                                    Console.WriteLine("Der angegebene vergleichs Parameter {0} ist ungültig", str);
                                    printUsage();
                                    return (int)nagiosStatus.Unknown;
                                }
                            }
                        }
                    }
                    else
                    {
                        //  Kein compare Parameter angegeben
                    }
                }

            #if DEBUG
                Console.WriteLine(string.Format("Main() - Parameter: -version: '{0}' | -process: '{1}' | compare: '{2}' | equals: '{3}'",
                                !string.IsNullOrWhiteSpace(ver) ? ver : "LEER",
                                !string.IsNullOrWhiteSpace(prz) ? prz : "LEER",
                                !string.IsNullOrWhiteSpace(cmp) ? cmp : "LEER",
                                "N/A"));
                Debug.WriteLine(string.Format("Main() - Parameter: -version: '{0}' | -process: '{1}' | compare: '{2}' | equals: '{3}'",
                                !string.IsNullOrWhiteSpace(ver) ? ver : "LEER",
                                !string.IsNullOrWhiteSpace(prz) ? prz : "LEER",
                                !string.IsNullOrWhiteSpace(cmp) ? cmp : "LEER",
                                "N/A"));
            #endif
                //  Wenn keine Version vorhanden ist,
                //  dann nur ausgabe der Version vom Prozes
                if (!string.IsNullOrWhiteSpace(prz))
                {
                    string strVersion;
                    //string strVerNeed;
                    bool equal = false; ;
            #if DEBUG
                    int[] iVerPrz;
                    int[] iVerNeed;
            #endif
                    if (!check_ProcessIsRunning(prz, out strVersion))
                    {
                        Console.WriteLine("'Es muss mindestens der Name eines Prozesses angegeben werden oder der angegebene Prozess ist nicht gestartet'");
                        printUsage();
            #if DEBUG
                        Console.Write("Press any key to continue . . . ");
                        Console.ReadKey(true);
            #endif
                        status = (int)nagiosStatus.Unknown;
                    }
                    else
                    {
                        if (!string.IsNullOrWhiteSpace(ver))
                        {
                            if ((compareType & cmdActionArgsCompareType.TEXT) != 0)
                            {
                                equal = check_VersionNumbers(strVersion, ver);
                            }
                            else
                            {
            #if DEBUG
                                iVerPrz = strVersion2IntArray(strVersion);
                                iVerNeed = strVersion2IntArray(ver);
                                equal = check_VersionNumbers(iVerPrz, iVerNeed);
            #else
                                equal = check_VersionNumbers(strVersion2IntArray(strVersion), strVersion2IntArray(ver));
            #endif
                            }
                            status = equal ? (int)nagiosStatus.Ok : (int)nagiosStatus.Critical;

            #if DEBUG
                            if (equal)
                                Debug.WriteLine(string.Format("Version ist OK (Erf. {0} ({2}) / App {1})", ver, strVersion, compareType));
                            else
                                Debug.WriteLine(string.Format("Version ist NOK (Erf. {0} ({2}) / App {1})", ver, strVersion, compareType));
            #endif

                            Console.WriteLine(string.Format("Version ist {3}|'(Erforderlich {0} ({2}) / Anwendung {1})'", ver, strVersion, compareType, equal ? "OK" : "NOK", status));
                        }
                        else
                        {
                            Console.WriteLine(string.Format("'Version von {1} lautet {0}'", strVersion, prz));
                            status = (int)nagiosStatus.Ok;
                        }
                    }

            #if DEBUG
                    Console.Write("Press any key to continue . . . ");
                    Console.ReadKey(true);
            #endif
                    return status;
                }
            }
            else
            {
                Console.WriteLine("Es muss mindestens der Name eines Prozesses angegeben werden oder der angegebene Prozess ist nicht gestartet");
                printUsage();
            }

            return (int)nagiosStatus.Ok;
        }