95 lines
		
	
	
		
			3.3 KiB
		
	
	
	
		
			C#
		
	
	
			
		
		
	
	
			95 lines
		
	
	
		
			3.3 KiB
		
	
	
	
		
			C#
		
	
	
| //
 | |
| //  AppLovinBuildPostProcessor.cs
 | |
| //  AppLovin MAX Unity Plugin
 | |
| //
 | |
| //  Created by Santosh Bagadi on 10/30/19.
 | |
| //  Copyright © 2019 AppLovin. All rights reserved.
 | |
| //
 | |
| 
 | |
| #if UNITY_IOS || UNITY_IPHONE
 | |
| 
 | |
| using System.Diagnostics;
 | |
| using System.IO;
 | |
| 
 | |
| namespace AppLovinMax.Scripts.IntegrationManager.Editor
 | |
| {
 | |
|     /// <summary>
 | |
|     /// A helper class to run command line tools.
 | |
|     ///
 | |
|     /// TODO: Currently only supports shell (Linux). Add support for Windows machines.
 | |
|     /// </summary>
 | |
|     public class AppLovinCommandLine
 | |
|     {
 | |
|         /// <summary>
 | |
|         /// Result obtained by running a command line command.
 | |
|         /// </summary>
 | |
|         public class Result
 | |
|         {
 | |
|             /// <summary>
 | |
|             /// Standard output stream from command line.
 | |
|             /// </summary>
 | |
|             public string StandardOutput;
 | |
| 
 | |
|             /// <summary>
 | |
|             /// Standard error stream from command line. 
 | |
|             /// </summary>
 | |
|             public string StandardError;
 | |
| 
 | |
|             /// <summary>
 | |
|             /// Exit code returned from command line.
 | |
|             /// </summary>
 | |
|             public int ExitCode;
 | |
| 
 | |
|             /// <summary>
 | |
|             /// The description of the result that can be used for error logging.
 | |
|             /// </summary>
 | |
|             public string Message;
 | |
|         }
 | |
| 
 | |
|         /// <summary>
 | |
|         /// Runs a command line tool using the provided <see cref="toolPath"/> and <see cref="arguments"/>.
 | |
|         /// </summary>
 | |
|         /// <param name="toolPath">The tool path to run</param>
 | |
|         /// <param name="arguments">The arguments to be passed to the command line tool</param>
 | |
|         /// <param name="workingDirectory">The directory from which to run this command.</param>
 | |
|         /// <returns></returns>
 | |
|         public static Result Run(string toolPath, string arguments, string workingDirectory)
 | |
|         {
 | |
|             var stdoutFileName = Path.GetTempFileName();
 | |
|             var stderrFileName = Path.GetTempFileName();
 | |
| 
 | |
|             var process = new Process();
 | |
|             process.StartInfo.UseShellExecute = true;
 | |
|             process.StartInfo.CreateNoWindow = false;
 | |
|             process.StartInfo.RedirectStandardInput = false;
 | |
|             process.StartInfo.RedirectStandardOutput = false;
 | |
|             process.StartInfo.RedirectStandardError = false;
 | |
| 
 | |
|             process.StartInfo.WorkingDirectory = workingDirectory;
 | |
|             process.StartInfo.FileName = "bash";
 | |
|             process.StartInfo.Arguments = string.Format("-l -c '\"{0}\" {1} 1> {2} 2> {3}'", toolPath, arguments, stdoutFileName, stderrFileName);
 | |
|             process.Start();
 | |
| 
 | |
|             process.WaitForExit();
 | |
| 
 | |
|             var stdout = File.ReadAllText(stdoutFileName);
 | |
|             var stderr = File.ReadAllText(stderrFileName);
 | |
| 
 | |
|             File.Delete(stdoutFileName);
 | |
|             File.Delete(stderrFileName);
 | |
| 
 | |
|             var result = new Result();
 | |
|             result.StandardOutput = stdout;
 | |
|             result.StandardError = stderr;
 | |
|             result.ExitCode = process.ExitCode;
 | |
| 
 | |
|             var messagePrefix = result.ExitCode == 0 ? "Command executed successfully" : "Failed to run command";
 | |
|             result.Message = string.Format("{0}: '{1} {2}'\nstdout: {3}\nstderr: {4}\nExit code: {5}", messagePrefix, toolPath, arguments, stdout, stderr, process.ExitCode);
 | |
| 
 | |
|             return result;
 | |
|         }
 | |
|     }
 | |
| }
 | |
| 
 | |
| #endif
 |