Source code for coalib.bears.requirements.GoRequirement
from coalib.bears.requirements.PackageRequirement import PackageRequirement
from coalib.misc.Shell import call_without_output
[docs]class GoRequirement(PackageRequirement):
"""
This class is a subclass of ``PackageRequirement``. It specifies the proper
type for ``go`` packages automatically and provide a function to check
for the requirement.
"""
def __init__(self, package, version='', flag=''):
"""
Constructs a new ``GoRequirement``, using the ``PackageRequirement``
constructor.
>>> pr = GoRequirement('github.com/golang/lint/golint', '19.2', '-u')
>>> pr.type
'go'
>>> pr.package
'github.com/golang/lint/golint'
>>> pr.version
'19.2'
>>> pr.flag
'-u'
:param package: A string with the name of the package to be installed.
:param version: A version string. Leave empty to specify latest version.
:param flag: A string that specifies any additional flags, that
are passed to the manager.
"""
PackageRequirement.__init__(self, 'go', package, version)
self.flag = flag
[docs] def is_installed(self):
"""
Checks if the dependency is installed.
:param return: True if dependency is installed, false otherwise.
"""
return not call_without_output(('go', 'list', self.package))