Exemple #1
0
        private static T DoStandardExceptionHandling<T>(ArgException ex, ArgHook.HookContext context, CommandLineArgumentsDefinition definition) where T : class
        {
            Console.WriteLine(ex.Message);

            ArgUsage.GetStyledUsage(definition, definition.ExceptionBehavior.ExeName, new ArgUsageOptions
            {
                ShowPosition = definition.ExceptionBehavior.ShowPositionColumn,
                ShowType = definition.ExceptionBehavior.ShowTypeColumn,
                ShowPossibleValues = definition.ExceptionBehavior.ShowPossibleValues,
            }).Write();

            return CreateEmptyResult<T>(context, ex);
        }
Exemple #2
0
        private static T DoStandardExceptionHandling <T>(ArgException ex, ArgHook.HookContext context, CommandLineArgumentsDefinition definition) where T : class
        {
            Console.WriteLine(ex.Message);

            if (definition.ExceptionBehavior.UsageTemplateFile != null)
            {
                var template = File.ReadAllText(definition.ExceptionBehavior.UsageTemplateFile);
                ArgUsage.GenerateUsageFromTemplate(definition, template).Write();
            }
            else
            {
                UsageTemplateProvider.GetUsage(definition.ExceptionBehavior.UsageTemplateProviderType, definition).Write();
            }

            return(CreateEmptyResult <T>(context, ex));
        }
Exemple #3
0
        private static T CreateEmptyResult <T>(ArgHook.HookContext context, ArgException ex = null, bool cancelled = false)
        {
            ArgAction ret = new ArgAction();

            if (typeof(T) == typeof(ArgAction))
            {
                ret = new ArgAction();
            }
            else if (typeof(T).IsSubclassOf(typeof(ArgAction)))
            {
                ret = Activator.CreateInstance(typeof(T)) as ArgAction;
            }
            else
            {
                return(default(T));
            }

            ret.HandledException = ex;
            ret.Definition       = context.Definition;
            ret.Context          = context;
            ret.Cancelled        = cancelled;
            return((T)((object)ret));
        }