Fix go parsing.
This commit is contained in:
parent
445c2c19d2
commit
e232c603eb
2 changed files with 18 additions and 5 deletions
|
@ -1145,21 +1145,26 @@ class Cargo(BuildSystem):
|
|||
|
||||
|
||||
def _parse_go_mod(f):
|
||||
line = f.readline()
|
||||
def readline():
|
||||
line = f.readline()
|
||||
if not line:
|
||||
return line
|
||||
return line.split('//')[0] + '\n'
|
||||
line = readline()
|
||||
while line:
|
||||
parts = line.strip().split(' ')
|
||||
if not parts:
|
||||
continue
|
||||
if len(parts) == 2 and parts[1] == '(':
|
||||
line = f.readline()
|
||||
line = readline()
|
||||
while line.strip() != ')':
|
||||
yield [parts[0]] + list(line.strip().split(' '))
|
||||
line = f.readline()
|
||||
line = readline()
|
||||
if not line:
|
||||
raise AssertionError('list of %s interrupted?' % parts[0])
|
||||
else:
|
||||
yield parts
|
||||
line = f.readline()
|
||||
line = readline()
|
||||
|
||||
|
||||
class Golang(BuildSystem):
|
||||
|
@ -1194,7 +1199,7 @@ class Golang(BuildSystem):
|
|||
yield "build", GoRequirement(parts[1])
|
||||
elif parts[0] == 'require':
|
||||
yield "build", GoPackageRequirement(
|
||||
parts[1], parts[2] if len(parts) > 2 else None)
|
||||
parts[1], parts[2].lstrip('v') if len(parts) > 2 else None)
|
||||
elif parts[0] == 'exclude':
|
||||
pass # TODO(jelmer): Create conflicts?
|
||||
elif parts[0] == 'replace':
|
||||
|
|
|
@ -278,6 +278,11 @@ class GoPackageRequirement(Requirement):
|
|||
self.package = package
|
||||
self.version = version
|
||||
|
||||
def __str__(self):
|
||||
if self.version:
|
||||
return "go package: %s (= %s)" % (self.package, self.version)
|
||||
return "go package: %s" % self.package
|
||||
|
||||
|
||||
class GoRequirement(Requirement):
|
||||
|
||||
|
@ -287,6 +292,9 @@ class GoRequirement(Requirement):
|
|||
super(GoRequirement, self).__init__("go")
|
||||
self.version = version
|
||||
|
||||
def __str__(self):
|
||||
return "go %s" % self.version
|
||||
|
||||
|
||||
class DhAddonRequirement(Requirement):
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue