packages

in lib/omnibus/publisher.rb [69:125]


    def packages
      @packages ||= begin
        publish_packages = []
        build_packages   = FileSyncer.glob(@pattern).map { |path| Package.new(path) }

        if @options[:platform_mappings]
          
          @options[:platform_mappings].each_pair do |build_platform, publish_platforms|
            
            build_platform, build_platform_version, build_architecture = build_platform.split("-")

            
            packages = build_packages.select do |p|
              p.metadata[:platform] == build_platform &&
                p.metadata[:platform_version] == build_platform_version &&
                p.metadata[:arch] == build_architecture
            end

            if packages.empty?
              log.warn(log_key) do
                "Could not locate a package for build platform #{build_platform}-#{build_platform_version}-#{build_architecture}. " \
                "Publishing will be skipped for: #{publish_platforms.join(", ")}"
              end
            end

            publish_platforms.each do |publish_platform|
              publish_platform, publish_platform_version, publish_architecture = publish_platform.split("-")

              packages.each do |p|
                
                publish_package  = p.dup
                publish_metadata = p.metadata.dup.to_hash

                
                publish_metadata[:platform]         = publish_platform
                publish_metadata[:platform_version] = publish_platform_version
                publish_metadata[:arch]             = publish_architecture

                
                publish_package.metadata = Metadata.new(publish_package, publish_metadata)

                publish_packages << publish_package
              end
            end
          end
        else
          publish_packages.concat(build_packages)
        end

        if publish_packages.empty?
          log.info(log_key) { "No packages found, skipping publish" }
        end

        publish_packages
      end
    end