diff --git a/api/repos.go b/api/repos.go index e8320d4cc..4dfae2b4d 100644 --- a/api/repos.go +++ b/api/repos.go @@ -301,6 +301,7 @@ func apiReposPackageFromDir(c *gin.Context) { var ( sources []string packageFiles, failedFiles []string + otherFiles []string processedFiles, failedFiles2 []string reporter = &aptly.RecordingResultReporter{ Warnings: []string{}, @@ -316,7 +317,7 @@ func apiReposPackageFromDir(c *gin.Context) { sources = []string{filepath.Join(context.UploadPath(), c.Params.ByName("dir"), c.Params.ByName("file"))} } - packageFiles, failedFiles = deb.CollectPackageFiles(sources, reporter) + packageFiles, otherFiles, failedFiles = deb.CollectPackageFiles(sources, reporter) list, err = deb.NewPackageListFromRefList(repo.RefList(), context.CollectionFactory().PackageCollection(), nil) if err != nil { @@ -328,6 +329,8 @@ func apiReposPackageFromDir(c *gin.Context) { context.CollectionFactory().PackageCollection(), reporter, nil, context.CollectionFactory().ChecksumCollection()) failedFiles = append(failedFiles, failedFiles2...) + processedFiles = append(processedFiles, otherFiles...) + if err != nil { c.AbortWithError(500, fmt.Errorf("unable to import package files: %s", err)) return diff --git a/cmd/repo_add.go b/cmd/repo_add.go index dafa74614..f241537f5 100644 --- a/cmd/repo_add.go +++ b/cmd/repo_add.go @@ -41,9 +41,9 @@ func aptlyRepoAdd(cmd *commander.Command, args []string) error { forceReplace := context.Flags().Lookup("force-replace").Value.Get().(bool) - var packageFiles, failedFiles []string + var packageFiles, otherFiles, failedFiles []string - packageFiles, failedFiles = deb.CollectPackageFiles(args[1:], &aptly.ConsoleResultReporter{Progress: context.Progress()}) + packageFiles, otherFiles, failedFiles = deb.CollectPackageFiles(args[1:], &aptly.ConsoleResultReporter{Progress: context.Progress()}) var processedFiles, failedFiles2 []string @@ -55,6 +55,8 @@ func aptlyRepoAdd(cmd *commander.Command, args []string) error { return fmt.Errorf("unable to import package files: %s", err) } + processedFiles = append(processedFiles, otherFiles...) + repo.UpdateRefList(deb.NewPackageRefListFromPackageList(list)) err = context.CollectionFactory().LocalRepoCollection().Update(repo) diff --git a/cmd/repo_include.go b/cmd/repo_include.go index 1c78cc9f6..81d83a59d 100644 --- a/cmd/repo_include.go +++ b/cmd/repo_include.go @@ -138,7 +138,7 @@ func aptlyRepoInclude(cmd *commander.Command, args []string) error { return fmt.Errorf("unable to load packages: %s", err) } - packageFiles, _ := deb.CollectPackageFiles([]string{changes.TempDir}, reporter) + packageFiles, otherFiles, _ := deb.CollectPackageFiles([]string{changes.TempDir}, reporter) var restriction deb.PackageQuery @@ -179,6 +179,10 @@ func aptlyRepoInclude(cmd *commander.Command, args []string) error { processedFiles = append(processedFiles, filepath.Join(changes.BasePath, filepath.Base(file))) } + for _, file := range otherFiles { + processedFiles = append(processedFiles, filepath.Join(changes.BasePath, filepath.Base(file))) + } + processedFiles = append(processedFiles, path) } diff --git a/deb/import.go b/deb/import.go index 74afa6318..abc9f8ddb 100644 --- a/deb/import.go +++ b/deb/import.go @@ -12,7 +12,7 @@ import ( ) // CollectPackageFiles walks filesystem collecting all candidates for package files -func CollectPackageFiles(locations []string, reporter aptly.ResultReporter) (packageFiles, failedFiles []string) { +func CollectPackageFiles(locations []string, reporter aptly.ResultReporter) (packageFiles, otherFiles, failedFiles []string) { for _, location := range locations { info, err2 := os.Stat(location) if err2 != nil { @@ -32,6 +32,8 @@ func CollectPackageFiles(locations []string, reporter aptly.ResultReporter) (pac if strings.HasSuffix(info.Name(), ".deb") || strings.HasSuffix(info.Name(), ".udeb") || strings.HasSuffix(info.Name(), ".dsc") || strings.HasSuffix(info.Name(), ".ddeb") { packageFiles = append(packageFiles, path) + } else if strings.HasSuffix(info.Name(), ".buildinfo") { + otherFiles = append(otherFiles, path) } return nil @@ -46,6 +48,8 @@ func CollectPackageFiles(locations []string, reporter aptly.ResultReporter) (pac if strings.HasSuffix(info.Name(), ".deb") || strings.HasSuffix(info.Name(), ".udeb") || strings.HasSuffix(info.Name(), ".dsc") || strings.HasSuffix(info.Name(), ".ddeb") { packageFiles = append(packageFiles, location) + } else if strings.HasSuffix(info.Name(), ".buildinfo") { + otherFiles = append(otherFiles, location) } else { reporter.Warning("Unknown file extension: %s", location) failedFiles = append(failedFiles, location)