|
@@ -1,84 +0,0 @@
|
|
|
-// --------------------------------------------------
|
|
|
-// UnityInjector - ConsoleMirror.cs
|
|
|
-// Copyright (c) Usagirei 2015 - 2015
|
|
|
-// --------------------------------------------------
|
|
|
-
|
|
|
-using System;
|
|
|
-using System.Diagnostics;
|
|
|
-using System.IO;
|
|
|
-using System.Text;
|
|
|
-
|
|
|
-namespace UnityInjector.ConsoleUtil
|
|
|
-{
|
|
|
- internal class ConsoleMirror : IDisposable
|
|
|
- {
|
|
|
- private readonly MirrorWriter _tWriter;
|
|
|
-
|
|
|
- public ConsoleMirror(string path)
|
|
|
- {
|
|
|
- try
|
|
|
- {
|
|
|
- var fileStream = File.Open(path, FileMode.Append, FileAccess.Write, FileShare.Read);
|
|
|
- var fileWriter = new StreamWriter(fileStream)
|
|
|
- {
|
|
|
- AutoFlush = true
|
|
|
- };
|
|
|
- _tWriter = new MirrorWriter(fileWriter, Console.Out);
|
|
|
- }
|
|
|
- catch (Exception e)
|
|
|
- {
|
|
|
- SafeConsole.ForegroundColor = ConsoleColor.DarkGray;
|
|
|
- Console.WriteLine("Couldn't open file to write: {0}", Path.GetFileName(path));
|
|
|
- Console.WriteLine(e.Message);
|
|
|
- SafeConsole.ForegroundColor = ConsoleColor.Gray;
|
|
|
-
|
|
|
- return;
|
|
|
- }
|
|
|
- Console.SetOut(_tWriter);
|
|
|
-
|
|
|
- Console.WriteLine();
|
|
|
-
|
|
|
- var processName = Process.GetCurrentProcess().ProcessName;
|
|
|
- var now = DateTime.Now;
|
|
|
-
|
|
|
- Console.WriteLine($" {processName} - {now:dd-MM-yyyy hh:mm:ss} ".PadCenter(79, '='));
|
|
|
- Console.WriteLine();
|
|
|
- }
|
|
|
-
|
|
|
- public void Dispose()
|
|
|
- {
|
|
|
- var cOld = _tWriter.Console;
|
|
|
- var fOld = _tWriter.File;
|
|
|
- Console.SetOut(cOld);
|
|
|
- if (fOld == null)
|
|
|
- return;
|
|
|
- fOld.Flush();
|
|
|
- fOld.Close();
|
|
|
- }
|
|
|
-
|
|
|
- private class MirrorWriter : TextWriter
|
|
|
- {
|
|
|
- public TextWriter Console { get; }
|
|
|
- public override Encoding Encoding => File.Encoding;
|
|
|
- public TextWriter File { get; }
|
|
|
-
|
|
|
- public MirrorWriter(TextWriter file, TextWriter console)
|
|
|
- {
|
|
|
- File = file;
|
|
|
- Console = console;
|
|
|
- }
|
|
|
-
|
|
|
- public override void Flush()
|
|
|
- {
|
|
|
- File.Flush();
|
|
|
- Console.Flush();
|
|
|
- }
|
|
|
-
|
|
|
- public override void Write(char value)
|
|
|
- {
|
|
|
- File.Write(value);
|
|
|
- Console.Write(value);
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
-}
|