Example #1
0
        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.");
            }
        }
Example #2
0
        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.");
            }
        }
Example #4
0
        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();
            }
        }
Example #5
0
 public string GetBucketKey(string defaultKey, IHaveBucketKeyBehaviour behaviour)
 {
     return(bucketKeyProvider.GetBucketKey(defaultKey, behaviour));
 }
Example #6
0
 string GetBucketKey(string defaultKey, IHaveBucketKeyBehaviour behaviour, string packageFilePath = "")
 {
     return(bucketKeyProvider.GetBucketKey(defaultKey, behaviour, packageFilePath));
 }