def _auto_remote(path_to_tx, url): """ Initialize a remote release/project/resource to the current directory. """ logger.info("Auto configuring local project from remote URL...") type, vars = utils.parse_tx_url(url) prj = project.Project(path_to_tx) username, password = prj.getset_host_credentials(vars['hostname']) if type == 'project': logger.info("Getting details for project %s" % vars['project']) proj_info = utils.get_details('project_details', username, password, hostname = vars['hostname'], project = vars['project']) resources = [ '.'.join([vars['project'], r['slug']]) for r in proj_info['resources'] ] logger.info("%s resources found. Configuring..." % len(resources)) elif type == 'release': logger.info("Getting details for release %s" % vars['release']) rel_info = utils.get_details('release_details', username, password, hostname = vars['hostname'], project = vars['project'], release = vars['release']) resources = [] for r in rel_info['resources']: if r.has_key('project'): resources.append('.'.join([r['project']['slug'], r['slug']])) else: resources.append('.'.join([vars['project'], r['slug']])) logger.info("%s resources found. Configuring..." % len(resources)) elif type == 'resource': logger.info("Getting details for resource %s" % vars['resource']) resources = [ '.'.join([vars['project'], vars['resource']]) ] else: raise("Url '%s' is not recognized." % url) for resource in resources: logger.info("Configuring resource %s." % resource) proj, res = resource.split('.') res_info = utils.get_details('resource_details', username, password, hostname = vars['hostname'], project = proj, resource=res) try: source_lang = res_info['source_language_code'] i18n_type = res_info['i18n_type'] except KeyError: raise Exception("Remote server seems to be running an unsupported version" " of Transifex. Either update your server software of fallback" " to a previous version of transifex-client.") prj.set_remote_resource( resource=resource, host = vars['hostname'], source_lang = source_lang, i18n_type = i18n_type) prj.save()