HEX
Server: Apache/2.4.63 (Unix)
System: Linux TOMS-220NAS 4.4.302+ #86009 SMP Wed Nov 26 18:19:17 CST 2025 x86_64
User: flavio87 (1026)
PHP: 8.3.27
Disabled: NONE
Upload Files
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