def METHOD_NAME(apps):
    errors = 0
    for name, cmd in sorted(apps.items()):
        if name == "dialigntx" and sys.platform == "darwin":
            print(colorify('Dialign-tx not supported in OS X', "orange"), file=sys.stderr)
            continue
        if app2version.get(name):
            print(" %14s:" %name, end=' ')
            test_cmd = cmd + " " + app2version.get(name, "")
            process = subprocess.Popen(test_cmd, shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
            out, err = process.communicate()
            out = bytes.decode(out)
            if out:
                print("%s - %s" %(colorify("OK", "green"), str(out).strip()))
            else:
                print(colorify("MISSING", "red"))
                # print("** ", test_cmd)
                # print (process.returncode)
                # print (test_cmd)
                # print (out)
                # print (err)
                errors += 1
                #log.debug(test_cmd)
                #log.debug(subprocess.check_output(test_cmd.rstrip("wc -l")), shell=True)
    if errors:
        print(colorify('\nWARNING: %d external tools seem to be missing or unfunctional' %errors, "yellow"), file=sys.stderr)
        print(colorify('Install using conda (recomended):', "lgreen"), file=sys.stderr)
        print(colorify(' conda install -c etetoolkit ete3_external_apps', "white"), file=sys.stderr)
        print(colorify('or manually compile by running:', "lgreen"), file=sys.stderr)
        print(colorify(' ete3 upgrade-external-tools', "white"), file=sys.stderr)
        print()