From 1d21d3cfeb65998131fca9e167fcac525b301fc6 Mon Sep 17 00:00:00 2001 From: Andrey Smirnov Date: Fri, 20 Mar 2015 22:29:11 +0300 Subject: [PATCH] Uploader.json from repo overrides global uploaders.json. #71 --- cmd/repo_include.go | 31 +++++++++++++++++++++---------- 1 file changed, 21 insertions(+), 10 deletions(-) diff --git a/cmd/repo_include.go b/cmd/repo_include.go index 93c6194a..477e99ed 100644 --- a/cmd/repo_include.go +++ b/cmd/repo_include.go @@ -80,16 +80,6 @@ func aptlyRepoInclude(cmd *commander.Command, args []string) error { continue } - if uploaders != nil { - if err = uploaders.IsAllowed(changes); err != nil { - failedFiles = append(failedFiles, path) - reporter.Warning("changes file skipped due to uploaders config: %s, keys %#v: %s", - changes.ChangesName, changes.SignatureKeys, err) - changes.Cleanup() - continue - } - } - err = changes.Prepare() if err != nil { failedFiles = append(failedFiles, path) @@ -114,6 +104,27 @@ func aptlyRepoInclude(cmd *commander.Command, args []string) error { continue } + currentUploaders := uploaders + if repo.Uploaders != nil { + currentUploaders = repo.Uploaders + for i := range currentUploaders.Rules { + currentUploaders.Rules[i].CompiledCondition, err = query.Parse(currentUploaders.Rules[i].Condition) + if err != nil { + return fmt.Errorf("error parsing query %s: %s", currentUploaders.Rules[i].Condition, err) + } + } + } + + if currentUploaders != nil { + if err = currentUploaders.IsAllowed(changes); err != nil { + failedFiles = append(failedFiles, path) + reporter.Warning("changes file skipped due to uploaders config: %s, keys %#v: %s", + changes.ChangesName, changes.SignatureKeys, err) + changes.Cleanup() + continue + } + } + err = context.CollectionFactory().LocalRepoCollection().LoadComplete(repo) if err != nil { return fmt.Errorf("unable to load repo: %s", err)