Example #1
0
        public static void Run()
        {
            var doValidateProjectAssets = false;
            var doValidateCrossScenes   = false;
            var sceneValidationMode     = SceneValidationMode.None;
            var outputMode = OutputFormat.None;
            var fileName   = "";
            var argsDict   = CommandLineUtility.GetNamedCommandlineArguments(':');

            // Parse whether or not to validate assets in the project
            if (argsDict.ContainsKey(VALIDATE_PROJECT_ASSETS))
            {
                if (!bool.TryParse(argsDict[VALIDATE_PROJECT_ASSETS], out doValidateProjectAssets))
                {
                    LogArgumentError(VALIDATE_PROJECT_ASSETS, argsDict[VALIDATE_PROJECT_ASSETS]);
                }
            }

            // Parse whether or not to validate across scenes in the project
            if (argsDict.ContainsKey(VALIDATE_CROSS_SCENES))
            {
                if (!bool.TryParse(argsDict[VALIDATE_CROSS_SCENES], out doValidateCrossScenes))
                {
                    LogArgumentError(VALIDATE_CROSS_SCENES, argsDict[VALIDATE_CROSS_SCENES]);
                }
            }

            // Parse Scene Validation Mode
            if (argsDict.ContainsKey(SCENE_VALIDATE_MODE_KEY))
            {
                try
                {
                    sceneValidationMode = (SceneValidationMode)Enum.Parse(typeof(SceneValidationMode), argsDict[SCENE_VALIDATE_MODE_KEY], true);
                }
                catch (Exception)
                {
                    LogArgumentError(argsDict[SCENE_VALIDATE_MODE_KEY], SCENE_VALIDATE_MODE_KEY);
                    return;
                }
            }

            // Parse Output Format
            if (argsDict.ContainsKey(OUTPUT_FORMAT_KEY))
            {
                try
                {
                    outputMode = (OutputFormat)Enum.Parse(typeof(OutputFormat), argsDict[OUTPUT_FORMAT_KEY], true);
                }
                catch (Exception)
                {
                    LogArgumentError(argsDict[SCENE_VALIDATE_MODE_KEY], SCENE_VALIDATE_MODE_KEY);
                    return;
                }
            }
            else
            {
                Debug.LogWarning("No OutputFormat has been specified and so none will be written/displayed.");
            }

            // Parse OutputFilename
            if (argsDict.ContainsKey(FILENAME_MODE_KEY))
            {
                fileName = argsDict[FILENAME_MODE_KEY];
                // TODO Fix This
                //if (!FileUtility.IsValidFilename(fileName))
                //{
                //    Debug.LogFormat("{0} is not a valid filename, please check for any illegal characters for this operating system", fileName);
                //    return;
                //}
            }

            Debug.LogFormat("SceneValidationMode: [{0}], OutputMode: [{1}], DoValidateProjectAssets: [{2}], DoValidateCrossScenes: [{3}], Filename: [{4}]",
                            sceneValidationMode, outputMode, doValidateProjectAssets, doValidateCrossScenes, fileName);

            RunValidation(sceneValidationMode,
                          outputMode,
                          doValidateProjectAssets,
                          doValidateCrossScenes,
                          fileName);
        }