예제 #1
0
파일: Program.cs 프로젝트: skudi/NKit
        private static void outputExceptionDetails(Exception ex)
        {
            try
            {
                HandledException hex = ex as HandledException;
                if (hex == null && ex is AggregateException)
                {
                    hex = (HandledException)((AggregateException)ex).InnerExceptions.FirstOrDefault(a => a is HandledException);
                }

                logLine("");
                logLine("Failed");
                logLine("-------");
                if (hex != null)
                {
                    logLine(hex.FriendlyErrorMessage);
                }
                else
                {
                    logLine(ex.Message);
                }
                if (Settings.Read("OutputLevel", "1") == "3")
                {
                    logLine(ex.StackTrace);
                }
            }
            catch { }
        }
 public void Track(Exception exception)
 {
     if (exception.IsAnonymized())
     {
         TrackException(exception);
     }
     else
     {
         HandledException.Track(exception.GetType().FullName, exception.Message);
     }
 }
예제 #3
0
        protected override InterceptionAction InterceptCore(Message messageData)
        {
            ExceptionMessage exceptionMessage = messageData.Get <ExceptionMessage>();

            if (exceptionMessage.ExceptionInfo?.SourceException is RecoverableException)
            {
                HandledException.Decorate(exceptionMessage);
            }

            return(InterceptionAction.Continue);
        }
예제 #4
0
파일: Program.cs 프로젝트: skudi/NKit
        static int Main(string[] args)
        {
            logEnabled = true;
            try
            {
                logEnabled = args.Length == 0 || Settings.Read("OutputLevel", "1") != "0";
            }
            catch { }

            Version v  = Assembly.GetEntryAssembly().GetName().Version;
            Version vl = Assembly.GetEntryAssembly().GetName().Version;

            logLine(string.Format("{0} v{1}.{2}, NKit.dll v{3}.{4} :: Nanook", Settings.ExeName, v.Major.ToString(), v.Minor.ToString(), vl.Major.ToString(), vl.Minor.ToString()));
            logLine("");

            try
            {
                if (args.Length == 0)
                {
                    logLine(string.Format(@"Convert Wii and GameCube image files to ISO 

Usage: {0} <files|paths|masks> ...

Parameters can be 1 or more filename and paths with or without masks.
Masks can search subfolders. Edit NKit.dll.config

Supported files:  iso, wbfs, gcm, iso.dec, zip, rar, 7z

If paths or filenames have spaces ensure they are enclosed in ""s

Examples
  {0} c:\temp\image.wbfs
  {0} c:\temp\scrubbed.iso
  {0} c:\temp
  {0} *.*
  {0} c:\temp\image.wbfs \temp\*.zip x*.iso.dec
  {0} ""c:\path 1\*.zip"" ""c:\path 2\*.gcm"" ""..\path 3\*.iso""

Edit 'NKit.dll.config' to specify all the required values
", Settings.ExeName));
                    return(2);
                }

                bool recurse = Settings.Read("SearchSubfolders", "true") == "true";

                logLine("Processing command line and scanning files...");
                SourceFile[] files = SourceFiles.Scan(args, recurse);
                logLine(string.Format("Found {0} file{1}", files.Length.ToString(), files.Length == 1 ? "" : "s"));
                logLine("");


                foreach (SourceFile src in files)
                {
                    Converter nkitConvert = new Converter(src, true);

                    try
                    {
                        nkitConvert.LogMessage  += dx_LogMessage;
                        nkitConvert.LogProgress += dx_LogProgress;

                        OutputResults results = nkitConvert.ConvertToIso(); //apps can use the results
                    }
                    catch (Exception ex)
                    {
                        outputExceptionDetails(ex);
                    }
                    finally
                    {
                        nkitConvert.LogMessage  -= dx_LogMessage;
                        nkitConvert.LogProgress -= dx_LogProgress;
                    }
                }
                if (files.Length == 0)
                {
                    logLine("No files found");
                }
            }
            catch (Exception ex)
            {
                HandledException hex = ex as HandledException;
                if (hex == null && ex is AggregateException)
                {
                    hex = (HandledException)((AggregateException)ex).InnerExceptions.FirstOrDefault(a => a is HandledException);
                }

                logLine("");
                logLine("Failed");
                logLine("-------");
                if (hex != null)
                {
                    logLine(hex.FriendlyErrorMessage);
                }
                else
                {
                    logLine(ex.Message);
                }
            }

            if (logEnabled && Settings.Read("WaitForKeyAfterProcessing", "true") == "true")
            {
                logLine("");
                logLine("Press enter / return to exit . . .");
                Console.ReadLine();
            }

            Environment.ExitCode = 2;
            return(2);
        }