Sha256: f36b01fae8b829531d37918e0868f6f79b5bc513cf761dcd3b2cf01e85ee5f4f

Contents?: true

Size: 1.26 KB

Versions: 7

Compression:

Stored size: 1.26 KB

Contents

# frozen_string_literal: true

require 'license_finder/packages/go_package'

module LicenseFinder
  class GoModules < PackageManager
    PACKAGES_FILE = 'go.sum'

    class << self
      def takes_priority_over
        Go15VendorExperiment
      end

      def prepare_command
        'GO111MODULE=on go mod tidy && GO111MODULE=on go mod vendor'
      end
    end

    def active?
      sum_files?
    end

    def current_packages
      info_output, _stderr, _status = Cmd.run("GO111MODULE=on go list -m -mod=vendor -f '{{.Path}},{{.Version}},{{.Dir}}' all")
      packages_info = info_output.split("\n")
      packages = packages_info.map do |package|
        name, version, install_path = package.split(',')
        read_package(install_path, name, version)
      end
      packages.reject do |package|
        Pathname(package.install_path).cleanpath == Pathname(project_path).cleanpath
      end
    end

    private

    def sum_files?
      sum_file_paths.any?
    end

    def sum_file_paths
      Dir[project_path.join(PACKAGES_FILE)]
    end

    def read_package(install_path, name, version)
      info = {
        'ImportPath' => name,
        'InstallPath' => install_path,
        'Rev' => version
      }

      GoPackage.from_dependency(info, nil, true)
    end
  end
end

Version data entries

7 entries across 7 versions & 1 rubygems

Version Path
license_finder-5.10.2 lib/license_finder/package_managers/go_modules.rb
license_finder-5.10.1 lib/license_finder/package_managers/go_modules.rb
license_finder-5.10.0 lib/license_finder/package_managers/go_modules.rb
license_finder-5.9.2 lib/license_finder/package_managers/go_modules.rb
license_finder-5.9.1 lib/license_finder/package_managers/go_modules.rb
license_finder-5.9.0 lib/license_finder/package_managers/go_modules.rb
license_finder-5.8.0 lib/license_finder/package_managers/go_modules.rb