lib/license_finder/packages/go_package.rb
# frozen_string_literal: true
require 'license_finder/package'
module LicenseFinder
class GoPackage < Package
def package_manager
'Go'
end
def package_url
"https://pkg.go.dev/#{CGI.escape(name)}@#{CGI.escape(version)}"
end
class << self
def from_dependency(hash, prefix, full_version)
name = hash['ImportPath']
install_path = hash['InstallPath']
install_path ||= install_path(prefix.join(name))
version = full_version ? hash['Rev'].gsub('+incompatible', '') : hash['Rev'][0..6]
homepage = hash['Homepage']
new(name, version, install_path: install_path, package_manager: 'Go', homepage: homepage)
end
private
def install_path(path)
Pathname(path).cleanpath.to_s
end
end
end
end