File: //usr/local/packages/@appstore/ActiveInsight/collectors/active_insight_version.py
import re
import typing
class Version:
def __init__(self, major: int, minor: int, micro: int, build_number: int):
self.major = major
self.minor = minor
self.micro = micro
self.build_number = build_number
@property
def feature_number(self):
return f"{self.major}.{self.minor}.{self.micro}"
def get_package_version(package_name: str) -> typing.Optional[Version]:
with open(f"/var/packages/{package_name}/INFO", "r") as f:
for line in f:
match = re.match(r'^version="(.+).(.+).(.+)-(.+)"', line)
if match:
major = int(match.group(1))
minor = int(match.group(2))
micro = int(match.group(3))
build_number = int(match.group(4))
return Version(major, minor, micro, build_number)
return None