#!/usr/bin/env python

from subprocess import check_output as co
from sys import exit, version_info


def run(*args, **kwargs):
    "Run co and decode for python3"
    result = co(*args, **kwargs)
    return result.decode() if version_info[0] >= 3 else result


# Actually run bin/mn rather than importing via python path
version = 'Mininet-WiFi ' + run('PYTHONPATH=. bin/mn --wifi --version 2>&1', shell=True)
version = version.strip()

# Find all Mininet-WiFi path references
lines = run("egrep -or 'Mininet-WiFi [0-9\.\+]+\w*' *", shell=True)

error = False

for line in lines.split('\n'):
    if line and 'Binary' not in line:
        fname, fversion = line.split(':')
        if version != fversion:
            print("{}: incorrect version '{}' (should be '{}')".format(
                fname, fversion, version))
            error = True

if error:
    exit(1)
