public string GetBucketKey(string defaultKey, IHaveBucketKeyBehaviour behaviour, string packageFilePath = "") { var packageContentHash = string.Empty; if (!packageFilePath.IsNullOrEmpty()) { packageContentHash = CalculateContentHash(packageFilePath); } switch (behaviour.BucketKeyBehaviour) { case BucketKeyBehaviourType.Custom: return(SubstitutePackageHashVariable(behaviour.BucketKey, packageContentHash)); case BucketKeyBehaviourType.Filename: return($"{SubstitutePackageHashVariable(behaviour.BucketKeyPrefix, packageContentHash)}{defaultKey}"); case BucketKeyBehaviourType.FilenameWithContentHash: var(fileName, extension) = GetFileNameParts(defaultKey); var bucketKey = new StringBuilder(); bucketKey.Append(SubstitutePackageHashVariable(behaviour.BucketKeyPrefix, packageContentHash)); bucketKey.Append(fileName); if (!packageContentHash.IsNullOrEmpty()) { bucketKey.Append($"@{packageContentHash}"); } bucketKey.Append(extension); return(bucketKey.ToString()); default: throw new ArgumentOutOfRangeException(nameof(behaviour), "The provided bucket key behavior was not valid."); } }
public static Func <string> GetBucketKey(string baseDir, string filePath, IHaveBucketKeyBehaviour behaviour) { switch (behaviour.BucketKeyBehaviour) { case BucketKeyBehaviourType.Custom: return(() => behaviour.BucketKey); case BucketKeyBehaviourType.Filename: return(() => $"{behaviour.BucketKeyPrefix}{filePath.AsRelativePathFrom(baseDir)}"); default: throw new NotImplementedException(); } }
public string GetBucketKey(string defaultKey, IHaveBucketKeyBehaviour behaviour) { switch (behaviour.BucketKeyBehaviour) { case BucketKeyBehaviourType.Custom: return(behaviour.BucketKey); case BucketKeyBehaviourType.Filename: return($"{behaviour.BucketKeyPrefix}{defaultKey}"); default: throw new ArgumentOutOfRangeException(nameof(behaviour), "The provided bucket key behavior was not valid."); } }
private static Func <string> GetBucketKey(ICalamariFileSystem fileSystem, string filePath, IHaveBucketKeyBehaviour behaviour) { switch (behaviour.BucketKeyBehaviour) { case BucketKeyBehaviourType.Custom: return(() => behaviour.BucketKey); case BucketKeyBehaviourType.Filename: return(() => $"{behaviour.BucketKeyPrefix}{fileSystem.GetFileName(filePath)}"); default: throw new NotImplementedException(); } }
public string GetBucketKey(string defaultKey, IHaveBucketKeyBehaviour behaviour) { return(bucketKeyProvider.GetBucketKey(defaultKey, behaviour)); }
string GetBucketKey(string defaultKey, IHaveBucketKeyBehaviour behaviour, string packageFilePath = "") { return(bucketKeyProvider.GetBucketKey(defaultKey, behaviour, packageFilePath)); }