def lib_register(config_url): if not config_url.startswith("http://") and not config_url.startswith("https://"): raise exception.InvalidLibConfURL(config_url) # Validate manifest ManifestSchema().load_manifest( ManifestParserFactory.new_from_url(config_url).as_dict() ) result = util.get_api_result("/lib/register", data=dict(config_url=config_url)) if "message" in result and result["message"]: click.secho( result["message"], fg="green" if "successed" in result and result["successed"] else "red", )
def find_source_root(self, src): if self.manifest_uri: mp = (ManifestParserFactory.new_from_file(self.manifest_uri[5:]) if self.manifest_uri.startswith("file:") else ManifestParserFactory.new_from_url(self.manifest_uri)) manifest = ManifestSchema().load_manifest(mp.as_dict()) include = manifest.get("export", {}).get("include", []) if len(include) == 1: if not os.path.isdir(os.path.join(src, include[0])): raise PackageException( "Non existing `include` directory `%s` in a package" % include[0]) return os.path.join(src, include[0]) for root, _, __ in os.walk(src): if ManifestFileType.from_dir(root): return root return src