"""


import os
import shutil
import sys
import warnings

import migrations


TO_VERSION = 7


try:
    if migrations.check_definitions_version(TO_VERSION - 1):
        if os.path.exists("DEFAULTS"):
            warnings.warn("DEFAULTS file already exists in these definitions.")
            valid = False
        else:
            shutil.copy("migrations/007-initial-defaults", "DEFAULTS")
            valid = True

        if valid:
            migrations.set_definitions_version(TO_VERSION)
            sys.stdout.write("Migration completed successfully.\n")
            sys.exit(0)
        else:
            sys.stderr.write("Migration failed due to one or more warnings.\n")
            sys.exit(1)
    else:
Пример #2
0
    for chunk_ref in contents.get('chunks', []):
        if 'morph' in chunk_ref:
            chunk_path = os.path.join('.', chunk_ref['morph'])
            if not os.path.exists(chunk_path):
                # There's no way we can really fix this, so
                # just warn and say the migration failed.
                warnings.warn(
                    "%s points to non-existant file %s" %
                    (contents['name'], chunk_ref['morph']))
                valid = False

    return valid


try:
    if migrations.check_definitions_version(TO_VERSION - 1):
        safe_to_migrate = migrations.process_definitions(
            kinds=['stratum'], validate_cb=check_missing_chunk_morphs)

        if not safe_to_migrate:
            sys.stderr.write(
                "Migration failed due to one or more warnings.\n")
            sys.exit(1)
        else:
            migrations.set_definitions_version(TO_VERSION)
            sys.stdout.write("Migration completed successfully.\n")
            sys.exit(0)
    else:
        sys.stdout.write("Nothing to do.\n")
        sys.exit(0)
except RuntimeError as e: