Module control.checkgltf

Expand source code Browse git
import sys
import json


HELP = """
USAGE
python checkgltf.py --help
python checkgltf.py infile

EFFECT
If --help is present, prints this text and exits.

Checks whether the contents of the infile looks like GLTF content.

PRINTS the string "model/gltf+json" if it is so,
otherwise one or more diagnostics.

RETURNS 0 if the file content is GLTF, otherwise 1.
"""


def check(fileIn):
    good = True
    messages = []

    try:
        with open(fileIn, "r") as fh:
            data = json.load(fh)

            if "asset" not in data:
                messages.append("JSON content has no key 'asset'")
                good = False
            else:
                if "version" not in data["asset"]:
                    messages.append("Asset has no version")
                    good = False

    except Exception:
        messages.append("Content is not JSON")
        good = False

    return (good, messages)


def main():
    args = sys.argv[1:]
    if not args or "--help" in args:
        print(HELP)
        return -1

    if len(args) > 1:
        print(HELP)
        print("Supply exactly one argument")
        return -1

    inFile = args[0]
    (good, messages) = check(inFile)
    if good:
        print("model/gltf+json")
        return 0

    for msg in messages:
        print(msg)
    return 1


if __name__ == "__main__":
    exit(main())

Functions

def check(fileIn)
Expand source code Browse git
def check(fileIn):
    good = True
    messages = []

    try:
        with open(fileIn, "r") as fh:
            data = json.load(fh)

            if "asset" not in data:
                messages.append("JSON content has no key 'asset'")
                good = False
            else:
                if "version" not in data["asset"]:
                    messages.append("Asset has no version")
                    good = False

    except Exception:
        messages.append("Content is not JSON")
        good = False

    return (good, messages)
def main()
Expand source code Browse git
def main():
    args = sys.argv[1:]
    if not args or "--help" in args:
        print(HELP)
        return -1

    if len(args) > 1:
        print(HELP)
        print("Supply exactly one argument")
        return -1

    inFile = args[0]
    (good, messages) = check(inFile)
    if good:
        print("model/gltf+json")
        return 0

    for msg in messages:
        print(msg)
    return 1