Files
ivinject/Features/Injection/Models/IviCopiedBinary.cs
2024-11-03 18:29:07 +03:00

35 lines
1007 B
C#

using System.Text;
using ivinject.Common.Models;
using ivinject.Features.Packaging.Models;
namespace ivinject.Features.Injection.Models;
internal class IviCopiedBinary
{
internal required IviInjectionEntryType Type { get; init; }
internal required IviMachOBinary Binary { get; init; }
internal string Name => Binary.Name;
internal string GetRunPath(IviDirectoriesInfo directoriesInfo)
{
var builder = new StringBuilder("@rpath/");
builder.Append(
Type switch
{
IviInjectionEntryType.Framework => Path.GetRelativePath(
directoriesInfo.FrameworksDirectory,
Binary.FullName
),
IviInjectionEntryType.PlugIn => Path.GetRelativePath(
directoriesInfo.PlugInsDirectory,
Binary.FullName
),
_ => Binary.Name
}
);
return builder.ToString();
}
}