12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697 |
- using System;
- using System.IO;
- using UnityEditor;
- using UnityEngine;
- namespace com.JamesMobile.editor
- {
- public class EditorUtils {
- public static void ExecuteCommand(string executor, string cmd) {
- var start = new System.Diagnostics.ProcessStartInfo();
- start.FileName = executor;
- start.Arguments = cmd;
- start.CreateNoWindow = true;
- start.ErrorDialog = true;
- start.UseShellExecute = false;
- start.RedirectStandardOutput = true;
- start.RedirectStandardInput = true;
- start.RedirectStandardError = true;
- //
- var process = System.Diagnostics.Process.Start(start);
- process.WaitForExit();
- var output = process.StandardOutput.ReadToEnd();
- var error = process.StandardError.ReadToEnd();
- process.Close();
- //
- if (string.IsNullOrEmpty(error)) Debug.Log(cmd + " :\n\n" + output);
- else Debug.LogError(cmd + " :\n\n" + output + "\n\n" + error);
- }
- public static int Version2Code(string version)
- {
- try
- {
- var code = 0;
- var parts = version.Split(new char[] { '.' }, StringSplitOptions.RemoveEmptyEntries);
- var len = parts.Length;
- for (int i = 0; i < len; i++)
- {
- code += int.Parse(parts[i]) * (int)Mathf.Pow(100, len - i - 1);
- }
- return code;
- }
- catch (Exception)
- {
- // Debug.LogError(e.StackTrace);
- return 0;
- }
- }
- //
- public static string GetAARVersion()
- {
- var files = Directory.GetFiles(EditorConstants.AAR_DIR, "unimob-*.aar");
- var targetVer = string.Empty;
- foreach (var filePath in files)
- {
- var fileName = Path.GetFileName(filePath);
- var cursorVer = filePath.Split('-')[1].Substring(1);
- if ((string.IsNullOrEmpty(targetVer) && EditorUtils.Version2Code(cursorVer) > 0) || EditorUtils.Version2Code(targetVer) < EditorUtils.Version2Code(cursorVer))
- {
- targetVer = cursorVer;
- }
- }
- return targetVer;
- }
- public static void CleanAARs()
- {
- foreach(var aar in Directory.GetFiles(EditorConstants.AAR_DIR, "unimob-*.aar")) // clean
- {
- FileUtil.DeleteFileOrDirectory(aar);
- FileUtil.DeleteFileOrDirectory(aar + ".meta");
- }
- }
- public static string GetFrameworkVersion()
- {
- var versionFilePath = Path.Combine(EditorConstants.FRAMEWORK_PATH, "version.txt");
- if (! File.Exists(versionFilePath)) return null;
- return File.ReadAllText(versionFilePath).Trim();
- }
- public static void CleanFramework()
- {
- FileUtil.DeleteFileOrDirectory(EditorConstants.FRAMEWORK_PATH); // clean framework
- FileUtil.DeleteFileOrDirectory(EditorConstants.FRAMEWORK_PATH + ".meta"); // clean meta
- }
- // Defined Editor Prefs
- public static int ProxyPort
- {
- get => EditorPrefs.GetInt($"UNIMOB_BUILD_proxyPort_{Application.identifier}", 0);
- set => EditorPrefs.SetInt($"UNIMOB_BUILD_proxyPort_{Application.identifier}", value);
- }
- }
- }
|