106 lines
3.2 KiB
C#
106 lines
3.2 KiB
C#
using System;
|
|
using System.Collections;
|
|
using System.Collections.Generic;
|
|
using System.Diagnostics;
|
|
using UnityEditor;
|
|
using UnityEngine;
|
|
|
|
namespace Beyond
|
|
{
|
|
#if UNITY_EDITOR
|
|
using UnityEditor.Build;
|
|
using UnityEditor.Build.Reporting;
|
|
using UnityEngine;
|
|
|
|
public class Prebuild : IPreprocessBuildWithReport
|
|
{
|
|
public int callbackOrder { get { return 0; } }
|
|
|
|
public void SaveVersion()
|
|
{
|
|
BuildVersionScriptable bv = new BuildVersionScriptable();
|
|
//bv.version = v;
|
|
bv.Update();
|
|
AssetDatabase.DeleteAsset("Assets/Resources/Build.asset");
|
|
AssetDatabase.CreateAsset(bv, "Assets/Resources/Build.asset");
|
|
AssetDatabase.SaveAssets();
|
|
//PlayerSettings.iOS.buildNumber = v;
|
|
}
|
|
|
|
public void UpdateProjectVersion()
|
|
{
|
|
var bv = Resources.Load<BuildVersionScriptable>("Build");
|
|
//bv.Update();
|
|
PlayerSettings.iOS.buildNumber = bv.version;
|
|
}
|
|
|
|
public string ProcessVersion(string v)
|
|
{
|
|
if (!String.IsNullOrEmpty(v))
|
|
{
|
|
int id = v.IndexOf(':');
|
|
if (id > 0)
|
|
{
|
|
v = v.Substring(id+1);
|
|
}
|
|
|
|
id = v.IndexOf('M');
|
|
if (id > 0)
|
|
{
|
|
v = v.Substring(0, v.IndexOf('M'));
|
|
}
|
|
}
|
|
|
|
return v;
|
|
}
|
|
|
|
public void OnPreprocessBuild(BuildReport report)
|
|
{
|
|
Debug.Log("MyCustomBuildProcessor.OnPreprocessBuild for target " + report.summary.platform + " at path " + report.summary.outputPath);
|
|
/*
|
|
var result = ExecuteProcessTerminal("svnversion -c");
|
|
if (!String.IsNullOrEmpty(result))
|
|
{
|
|
SaveVersion(ProcessVersion(result));
|
|
}
|
|
*/
|
|
SaveVersion();
|
|
UpdateProjectVersion();
|
|
}
|
|
|
|
private string ExecuteProcessTerminal(string argument)
|
|
{
|
|
string output = "";
|
|
try
|
|
{
|
|
UnityEngine.Debug.Log("============== Start Executing [" + argument + "] ===============");
|
|
ProcessStartInfo startInfo = new ProcessStartInfo("/bin/bash")
|
|
{
|
|
WorkingDirectory = "/Users/marcin/projects/beYond",
|
|
UseShellExecute = false,
|
|
RedirectStandardOutput = true
|
|
};
|
|
Process myProcess = new Process
|
|
{
|
|
StartInfo = startInfo
|
|
};
|
|
//myProcess.StartInfo.Arguments = argument;
|
|
myProcess.StartInfo.Arguments = " -c \"" + argument + " \"";
|
|
myProcess.Start();
|
|
output = myProcess.StandardOutput.ReadToEnd();
|
|
UnityEngine.Debug.Log("Result for [" + argument + "] is : \n" + output);
|
|
myProcess.WaitForExit();
|
|
UnityEngine.Debug.Log("============== End ===============");
|
|
}
|
|
catch (Exception e)
|
|
{
|
|
UnityEngine.Debug.LogError(e);
|
|
}
|
|
|
|
return output;
|
|
}
|
|
|
|
}
|
|
#endif
|
|
}
|