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):
|
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:
|
while line:
|
||||||
parts = line.strip().split(' ')
|
parts = line.strip().split(' ')
|
||||||
if not parts:
|
if not parts:
|
||||||
continue
|
continue
|
||||||
if len(parts) == 2 and parts[1] == '(':
|
if len(parts) == 2 and parts[1] == '(':
|
||||||
line = f.readline()
|
line = readline()
|
||||||
while line.strip() != ')':
|
while line.strip() != ')':
|
||||||
yield [parts[0]] + list(line.strip().split(' '))
|
yield [parts[0]] + list(line.strip().split(' '))
|
||||||
line = f.readline()
|
line = readline()
|
||||||
if not line:
|
if not line:
|
||||||
raise AssertionError('list of %s interrupted?' % parts[0])
|
raise AssertionError('list of %s interrupted?' % parts[0])
|
||||||
else:
|
else:
|
||||||
yield parts
|
yield parts
|
||||||
line = f.readline()
|
line = readline()
|
||||||
|
|
||||||
|
|
||||||
class Golang(BuildSystem):
|
class Golang(BuildSystem):
|
||||||
|
@ -1194,7 +1199,7 @@ class Golang(BuildSystem):
|
||||||
yield "build", GoRequirement(parts[1])
|
yield "build", GoRequirement(parts[1])
|
||||||
elif parts[0] == 'require':
|
elif parts[0] == 'require':
|
||||||
yield "build", GoPackageRequirement(
|
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':
|
elif parts[0] == 'exclude':
|
||||||
pass # TODO(jelmer): Create conflicts?
|
pass # TODO(jelmer): Create conflicts?
|
||||||
elif parts[0] == 'replace':
|
elif parts[0] == 'replace':
|
||||||
|
|
|
@ -278,6 +278,11 @@ class GoPackageRequirement(Requirement):
|
||||||
self.package = package
|
self.package = package
|
||||||
self.version = version
|
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):
|
class GoRequirement(Requirement):
|
||||||
|
|
||||||
|
@ -287,6 +292,9 @@ class GoRequirement(Requirement):
|
||||||
super(GoRequirement, self).__init__("go")
|
super(GoRequirement, self).__init__("go")
|
||||||
self.version = version
|
self.version = version
|
||||||
|
|
||||||
|
def __str__(self):
|
||||||
|
return "go %s" % self.version
|
||||||
|
|
||||||
|
|
||||||
class DhAddonRequirement(Requirement):
|
class DhAddonRequirement(Requirement):
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue