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
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')