UnityGame/Library/PackageCache/com.unity.collab-proxy/Editor/PlasticSCM/Hub/Operations/OperationParams.cs
2024-10-27 10:53:47 +03:00

61 lines
1.9 KiB
C#

using System.IO;
using Codice.CM.Common;
using PlasticGui.WebApi;
namespace Unity.PlasticSCM.Editor.Hub.Operations
{
internal class OperationParams
{
internal readonly string WorkspaceFullPath;
internal readonly string Organization;
internal readonly string Repository;
internal readonly RepositorySpec RepositorySpec;
internal readonly string AccessToken;
internal static OperationParams BuildFromCommand(
ParseArguments.Command command,
string unityAccessToken)
{
string workspaceFullPath = command.HasWorkspacePath() ?
Path.GetFullPath(command.WorkspacePath) :
Path.GetFullPath(command.ProjectPath);
return new OperationParams(
workspaceFullPath,
command.Organization,
command.Repository,
BuildRepositorySpec(
command.Organization, command.Repository),
unityAccessToken);
}
static RepositorySpec BuildRepositorySpec(
string organization,
string repository)
{
string defaultCloudAlias = new PlasticWebRestApi()
.GetDefaultCloudAlias();
return RepositorySpec.BuildFromNameAndResolvedServer(
repository,
CloudServer.BuildFullyQualifiedName(organization, defaultCloudAlias)
);
}
OperationParams(
string workspaceFullPath,
string organization,
string repository,
RepositorySpec repositorySpec,
string accessToken)
{
WorkspaceFullPath = workspaceFullPath;
Organization = organization;
Repository = repository;
RepositorySpec = repositorySpec;
AccessToken = accessToken;
}
}
}