def resolve_urls(build, *url_locations): '''Include "src" prefix for relative URLs, e.g. ``file.html`` -> ``src/file.html`` ``url_locations`` uses:: * dot-notation to descend into a dictionary * ``[]`` at the end of a field name to denote an array * ``*`` means all attributes on a dictionary ''' def resolve_url_with_uuid(url): return utils._resolve_url(build.config, url, 'src') for location in url_locations: build.config = utils.transform(build.config, location, resolve_url_with_uuid)
def set_in_biplist(build, filename, key, value): # biplist import must be done here, as in the server context, biplist doesn't exist import biplist if isinstance(value, str): value = utils.render_string(build.config, value) build.log.debug(u"setting {key} to {value} in {files}".format( key=key, value=value, files=filename)) found_files = glob.glob(filename) if len(found_files) == 0: build.log.warning('No files were found to match pattern "%s"' % filename) for found_file in found_files: plist = biplist.readPlist(found_file) plist = utils.transform(plist, key, lambda _: value, allow_set=True) biplist.writePlist(plist, found_file)
def set_in_biplist(build, filename, key, value): # biplist import must be done here, as in the server context, biplist doesn't exist import biplist if isinstance(value, str): value = utils.render_string(build.config, value) build.log.debug(u"setting {key} to {value} in {files}".format( key=key, value=value, files=filename )) found_files = glob.glob(filename) if len(found_files) == 0: build.log.warning('No files were found to match pattern "%s"' % filename) for found_file in found_files: plist = biplist.readPlist(found_file) plist = utils.transform(plist, key, lambda _: value, allow_set=True) biplist.writePlist(plist, found_file)