Skip to content
This repository was archived by the owner on Dec 5, 2024. It is now read-only.

Adding a field in Environment to locate Unity's content's path #626

Merged
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 1 addition & 3 deletions src/GitHub.Api/Application/ApplicationManagerBase.cs
Original file line number Diff line number Diff line change
Expand Up @@ -88,9 +88,7 @@ public ITask InitializeRepository()

var targetPath = NPath.CurrentDirectory;

var unityYamlMergeExec = Environment.IsWindows
? Environment.UnityApplication.Parent.Combine("Data", "Tools", "UnityYAMLMerge.exe")
: Environment.UnityApplication.Combine("Contents", "Tools", "UnityYAMLMerge");
var unityYamlMergeExec = Environment.UnityApplicationContents.Combine("Tools", "UnityYAMLMerge" + Environment.ExecutableExtension);

var yamlMergeCommand = Environment.IsWindows
? $@"'{unityYamlMergeExec}' merge -p ""$BASE"" ""$REMOTE"" ""$LOCAL"" ""$MERGED"""
Expand Down
13 changes: 7 additions & 6 deletions src/GitHub.Api/Platform/DefaultEnvironment.cs
Original file line number Diff line number Diff line change
Expand Up @@ -42,10 +42,11 @@ public DefaultEnvironment(ICacheContainer cacheContainer)
this.CacheContainer = cacheContainer;
}

public void Initialize(string unityVersion, NPath extensionInstallPath, NPath unityPath, NPath assetsPath)
public void Initialize(string unityVersion, NPath extensionInstallPath, NPath unityApplicationPath, NPath unityApplicationContentsPath, NPath assetsPath)
{
ExtensionInstallPath = extensionInstallPath;
UnityApplication = unityPath;
UnityApplication = unityApplicationPath;
UnityApplicationContents = unityApplicationContentsPath;
UnityAssetsPath = assetsPath;
UnityProjectPath = assetsPath.Parent;
UnityVersion = unityVersion;
Expand Down Expand Up @@ -109,6 +110,7 @@ public string GetEnvironmentVariable(string variable)
public IFileSystem FileSystem { get { return NPath.FileSystem; } set { NPath.FileSystem = value; } }
public string UnityVersion { get; set; }
public NPath UnityApplication { get; set; }
public NPath UnityApplicationContents { get; set; }
public NPath UnityAssetsPath { get; set; }
public NPath UnityProjectPath { get; set; }
public NPath ExtensionInstallPath { get; set; }
Expand Down Expand Up @@ -140,9 +142,8 @@ public NPath NodeJsExecutablePath
{
if (!nodeJsExecutablePath.IsInitialized)
{
nodeJsExecutablePath = IsWindows
? UnityApplication.Parent.Combine("Data", "Tools", "nodejs", "node.exe")
: UnityApplication.Combine("Contents", "Tools", "nodejs", "node");
nodeJsExecutablePath =
UnityApplicationContents.Combine("Tools", "nodejs", "node" + ExecutableExtension);
}

return nodeJsExecutablePath;
Expand Down Expand Up @@ -207,7 +208,7 @@ public static bool OnMac
}
set { onMac = value; }
}
public string ExecutableExtension { get { return IsWindows ? ".exe" : null; } }
public string ExecutableExtension { get { return IsWindows ? ".exe" : string.Empty; } }
protected static ILogging Logger { get; } = LogHelper.GetLogger<DefaultEnvironment>();
}
}
3 changes: 2 additions & 1 deletion src/GitHub.Api/Platform/IEnvironment.cs
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ namespace GitHub.Unity
{
public interface IEnvironment
{
void Initialize(string unityVersion, NPath extensionInstallPath, NPath unityPath, NPath assetsPath);
void Initialize(string unityVersion, NPath extensionInstallPath, NPath unityApplicationPath, NPath unityApplicationContentsPath, NPath assetsPath);
void InitializeRepository(NPath? expectedRepositoryPath = null);
string ExpandEnvironmentVariables(string name);
string GetEnvironmentVariable(string v);
Expand All @@ -20,6 +20,7 @@ public interface IEnvironment
bool IsMac { get; }
string UnityVersion { get; }
NPath UnityApplication { get; }
NPath UnityApplicationContents { get; }
NPath UnityAssetsPath { get; }
NPath UnityProjectPath { get; }
NPath ExtensionInstallPath { get; }
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -81,13 +81,15 @@ sealed class EnvironmentCache : ScriptObjectSingleton<EnvironmentCache>
[SerializeField] private string extensionInstallPath;
[SerializeField] private string repositoryPath;
[SerializeField] private string unityApplication;
[SerializeField] private string unityApplicationContents;
[SerializeField] private string unityAssetsPath;
[SerializeField] private string unityVersion;

public void Flush()
{
repositoryPath = Environment.RepositoryPath;
unityApplication = Environment.UnityApplication;
unityApplicationContents = Environment.UnityApplicationContents;
unityAssetsPath = Environment.UnityAssetsPath;
extensionInstallPath = Environment.ExtensionInstallPath;
Save(true);
Expand All @@ -114,11 +116,12 @@ public IEnvironment Environment
{
unityAssetsPath = Application.dataPath;
unityApplication = EditorApplication.applicationPath;
unityApplicationContents = EditorApplication.applicationContentsPath;
extensionInstallPath = DetermineInstallationPath();
unityVersion = Application.unityVersion;
}
environment.Initialize(unityVersion, extensionInstallPath.ToNPath(), unityApplication.ToNPath(),
unityAssetsPath.ToNPath());
unityApplicationContents.ToNPath(), unityAssetsPath.ToNPath());
NPath? path = null;
if (!String.IsNullOrEmpty(repositoryPath))
path = repositoryPath.ToNPath();
Expand Down
8 changes: 5 additions & 3 deletions src/tests/IntegrationTests/IntegrationTestEnvironment.cs
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ public IntegrationTestEnvironment(ICacheContainer cacheContainer,

var installPath = solutionDirectory.Parent.Parent.Combine("src", "GitHub.Api");

Initialize(UnityVersion, installPath, solutionDirectory, repoPath.Combine("Assets"));
Initialize(UnityVersion, installPath, solutionDirectory, NPath.Default, repoPath.Combine("Assets"));

if (initializeRepository)
InitializeRepository();
Expand All @@ -47,9 +47,9 @@ public IntegrationTestEnvironment(ICacheContainer cacheContainer,
}
}

public void Initialize(string unityVersion, NPath extensionInstallPath, NPath unityPath, NPath assetsPath)
public void Initialize(string unityVersion, NPath extensionInstallPath, NPath unityPath, NPath unityContentsPath, NPath assetsPath)
{
defaultEnvironment.Initialize(unityVersion, extensionInstallPath, unityPath, assetsPath);
defaultEnvironment.Initialize(unityVersion, extensionInstallPath, unityPath, unityContentsPath, assetsPath);
}

public void InitializeRepository(NPath? expectedPath = null)
Expand Down Expand Up @@ -114,6 +114,8 @@ public NPath GitExecutablePath

public NPath UnityApplication => defaultEnvironment.UnityApplication;

public NPath UnityApplicationContents => defaultEnvironment.UnityApplicationContents;

public NPath UnityAssetsPath => defaultEnvironment.UnityAssetsPath;

public NPath UnityProjectPath => defaultEnvironment.UnityProjectPath;
Expand Down