コード例 #1
0
local_menu_item_defs = adm.get_local_menu_item_defs() # returns dict
menu_def_repo_data = adm.get_menu_def_repo_data() # returns dict
repo_menu_item_defs = menu_def_repo_data['defs']
obsolete_menu_item_defs = adm.read_json(adm.CONST.obsolete_menu_defs)
changes_made = False

# download menu item defs from repo that are not present
for menu_item_def_name in repo_menu_item_defs:
    if menu_item_def_name not in local_menu_item_defs:
        if menu_item_def_name in obsolete_menu_item_defs:
            print('Skipping obsolete menu definition ' + menu_item_def_name)
            continue # don't download obsolete
        menu_item_def = adm.get_menu_item_def_from_repo_by_name(menu_item_def_name)
        adm.write_other_menu_item_def_files(menu_item_def)
        adm.write_menu_item_def(menu_item_def_name, menu_item_def)
        print ('Downloading new remote menu item definition ' + menu_item_def_name)
        changes_made = True
# upload new and changed local menu item defs to repo if upload_flag set
for menu_item_def_name in local_menu_item_defs:
    if menu_item_def_name in obsolete_menu_item_defs:
        print('Skipping obsolete menu definition ' + menu_item_def_name)
        continue # don't upload obsolete
    menu_item_def = local_menu_item_defs[menu_item_def_name]

    # skip non-canonical names
    if menu_item_def_name.split('-')[0] not in iiab.lang_iso2_codes:
        print('Skipping non-standard menu definition ' + menu_item_def_name)
        continue

    # only upload if user explicitly want to share
コード例 #2
0
import iiab.adm_lib as adm

try:
    adm.pcgvtd9()
except:
    print("Unable to contact Server")
    sys.exit(1)

local_menu_item_defs = adm.get_local_menu_item_defs()  # returns dict
repo_menu_item_defs = adm.get_repo_menu_item_defs()  # returns dict
obsolete_menu_item_defs = adm.read_json(adm.CONST.obsolete_menu_defs)

# update commit_sha for cloned or pulled menu item defs
for menu_item_def_name in local_menu_item_defs:
    if menu_item_def_name in obsolete_menu_item_defs:
        print('Removing ' + menu_item_def_name)
        os.remove(adm.CONST.menu_def_dir + menu_item_def_name + '.json')
        # keep html and icons in case used elsewhere
    else:
        menu_item_def = local_menu_item_defs[menu_item_def_name]
        if menu_item_def_name in repo_menu_item_defs:
            print('Updating ' + menu_item_def_name)
            menu_item_def['commit_sha'] = repo_menu_item_defs[
                menu_item_def_name]['sha']
            menu_item_def['edit_status'] = 'repo'
            menu_item_def = adm.format_menu_item_def(menu_item_def_name,
                                                     menu_item_def)
            adm.write_menu_item_def(menu_item_def_name, menu_item_def)
        else:  # This should not happen but any pre-existing menu defs will be uploaded by the next sync_menu_defs.py run
            print(menu_item_def_name + ' not found in repo')