Example #1
0
from packaging.version import parse


def get_mmp(sqlfile):
    m = re.search(r'.*/?OMERO(\d+)\.(\d+)(\w*)__(\d+)', sqlfile)
    if m is None:
        return None
    mmp = (int(m.group(1)), int(m.group(2)), m.group(3), int(m.group(4)))
    return mmp


serverdir = path(sys.argv[1])

required = {'omero.db.version': None, 'omero.db.patch': None}
cli = CLI()
property_lines = cli.get_config_property_lines(serverdir)
for property in PropertyParser().parse_lines(property_lines):
    if property.key in required:
        required[property.key] = property.val

current_dbver = '%s__%s' % (required['omero.db.version'],
                            required['omero.db.patch'])

# Check dir
current_mmp = get_mmp(current_dbver)
if current_mmp is None:
    current_version = None
    directory = os.path.join(serverdir, 'sql', 'psql')
    subfolders = [f.path for f in os.scandir(directory) if f.is_dir()]
    for f in subfolders:
        ver = os.path.basename(os.path.normpath(f))