Archived
Private
Public Access
1
0
This repository has been archived on 2026-02-04. You can view files and clone it. You cannot open issues or pull requests or push a commit.
Files
ProjectBackup/Unity/MinecraftClone/Library/PackageCache/com.unity.collab-proxy@1.5.7/Editor/PlasticSCM/UnityConfigurationChecker.cs
2022-11-12 13:10:03 +01:00

96 lines
2.8 KiB
C#

using System;
using System.IO;
using Codice.Client.Common;
using Codice.Utils;
using Unity.PlasticSCM.Editor.Tool;
namespace Unity.PlasticSCM.Editor
{
internal static class UnityConfigurationChecker
{
internal static bool NeedsConfiguration()
{
string plasticClientBinDir = PlasticInstallPath.GetClientBinDir();
if (string.IsNullOrEmpty(plasticClientBinDir))
return true;
SetupUnityEditionToken.FromPlasticInstallation(plasticClientBinDir);
return ConfigurationChecker.NeedConfiguration();
}
}
internal static class SetupUnityEditionToken
{
internal static void CreateCloudEditionTokenIfNeeded()
{
string toolPath = PlasticInstallPath.GetPlasticExePath();
if (!string.IsNullOrEmpty(toolPath))
return;
string tokenFilePath = UserConfigFolder.GetConfigFile(
EditionToken.CLOUD_EDITION_FILE_NAME);
File.Create(tokenFilePath).Dispose();
}
internal static void FromPlasticInstallation(string plasticClientBinDir)
{
bool isCloudPlasticInstall = IsPlasticInstallOfEdition(
plasticClientBinDir,
EditionToken.CLOUD_EDITION_FILE_NAME);
bool isDvcsPlasticInstall = IsPlasticInstallOfEdition(
plasticClientBinDir,
EditionToken.DVCS_EDITION_FILE_NAME);
SetupTokenFiles(
isCloudPlasticInstall,
isDvcsPlasticInstall);
}
static void SetupTokenFiles(
bool isCloudPlasticInstall,
bool isDvcsPlasticInstall)
{
string unityCloudEditionTokenFile = UserConfigFolder.GetConfigFile(
EditionToken.CLOUD_EDITION_FILE_NAME);
string unityDvcsEditionTokenFile = UserConfigFolder.GetConfigFile(
EditionToken.DVCS_EDITION_FILE_NAME);
CreateOrDeleteTokenFile(isCloudPlasticInstall, unityCloudEditionTokenFile);
CreateOrDeleteTokenFile(isDvcsPlasticInstall, unityDvcsEditionTokenFile);
}
static void CreateOrDeleteTokenFile(bool isEdition, string editionTokenFile)
{
if (isEdition && !File.Exists(editionTokenFile))
{
File.Create(editionTokenFile).Dispose();
return;
}
if (!isEdition && File.Exists(editionTokenFile))
{
File.Delete(editionTokenFile);
return;
}
}
static bool IsPlasticInstallOfEdition(
string plasticClientBinDir,
string editionFileName)
{
return File.Exists(Path.Combine(
plasticClientBinDir,
editionFileName));
}
}
}