static int Main(string[] args) { try { var defaultBrush = ConsoleBrush.Current; var options = new ProgramOptions(); options.Help += delegate { Help(); Environment.Exit(0); }; options.Palette = JsonPalette.Auto(defaultBrush); args = options.Parse(args); var path = args.Length > 0 ? args[0] : "-"; try { try { PrettyColorPrint(path, Console.Out, options.Palette); } finally { // // The location of this finally clause is significant // and should not be merged with the outer catch // block. The default brush needs to be restored // in case an error message is about to be printed // and the standard output and error point to the // same console device. // defaultBrush.Apply(); } } catch (JsonException e) { // // In case of JsonException, we don't display the // base exception since the root cause would not provide // line and position information and which JsonException // does. For example, "Unterminated string" has the // root case of FormatException, but which bubble as // JsonException with line and position about where the // error was found in the source. // Console.Error.WriteLine(e.Message); Trace.WriteLine(e.ToString()); return(2); } return(0); } catch (Exception e) { Console.Error.WriteLine(e.GetBaseException().Message); Trace.WriteLine(e.ToString()); return(1); } }
public JsonColorWriter(JsonWriter inner, JsonPalette palette) { this.inner = inner; this.Palette = palette ?? JsonPalette.Auto(); }