def retrieve_monolithe_config_from_folder(self): """ """ parser = self.folder_manager.get_monolithe_config() self.monolithe_config = MonolitheConfig() self.monolithe_config.set_config(parser) self.folder_manager.monolithe_config = self.monolithe_config
def retrieve_monolithe_config_from_repo(self, branch): """ """ parser = self.repository_manager.get_monolithe_config(branch=branch) self.monolithe_config = MonolitheConfig() self.monolithe_config.set_config(parser) self.repository_manager.monolithe_config = self.monolithe_config
def main(argv=sys.argv): """ """ parser = argparse.ArgumentParser(description="SDK Documentation Generator") parser.add_argument("-c", "--config", dest="config_path", help="Path the monolithe configuration file", required=True, type=str) parser.add_argument("--vanilla-prefix", dest="vanilla_prefix", help="Prefix added to all vanilla path declared in the monolithe configuration file", required=False, type=str) args = parser.parse_args() monolithe_config = MonolitheConfig.config_with_path(args.config_path) if args.vanilla_prefix: monolithe_config.set_option("sdk_user_vanilla", "%s/%s" % (args.vanilla_prefix, monolithe_config.get_option("sdk_user_vanilla", "sdk")), "sdk") monolithe_config.set_option("sdkdoc_user_vanilla", "%s/%s" % (args.vanilla_prefix, monolithe_config.get_option("sdkdoc_user_vanilla", "sdkdoc")), "sdkdoc") monolithe_config.set_option("apidoc_user_vanilla", "%s/%s" % (args.vanilla_prefix, monolithe_config.get_option("apidoc_user_vanilla", "apidoc")), "apidoc") generator = SDKDocGenerator(monolithe_config=monolithe_config) generator.generate()
def setUp(self): """ Generate a new SDK """ base_path = self.get_base_path() monolithe_config = MonolitheConfig.config_with_path("%s/conf/conf.ini" % base_path) generator = SDKGenerator(monolithe_config=monolithe_config) generator.generate_from_folder(folder="%s/specifications" % base_path)
def retrieve_monolithe_config_from_folder(self, language="python"): """ """ parser = self.folder_manager.get_monolithe_config() self.monolithe_config = MonolitheConfig() self.monolithe_config.set_config(parser) self.monolithe_config.language = language self.folder_manager.monolithe_config = self.monolithe_config return self.monolithe_config
def setUp(self): """ Generate SDK Documentation """ base_path = self.get_base_path() monolithe_config = MonolitheConfig.config_with_path("%s/conf/conf.ini" % base_path) doc_generator = SDKDocGenerator(monolithe_config=monolithe_config) doc_generator.generate()
def setUp(self): """ Generate a new SDK """ base_path = self.get_base_path() monolithe_config = MonolitheConfig.config_with_path("%s/conf/conf.ini" % base_path) generator = SDKGenerator(monolithe_config=monolithe_config) generator.initialize_folder_manager(folder="%s/specifications" % base_path) generator.generate_from_folder()
def setUp(self): """ Generate API Documentation """ base_path = self.get_base_path() monolithe_config = MonolitheConfig.config_with_path("%s/conf/conf.ini" % base_path) generator = APIDocumentationGenerator(monolithe_config=monolithe_config) generator.initialize_folder_manager(folder="%s/specifications" % base_path) generator.generate_from_folder()
def setUp(self): """ Generate API Documentation """ base_path = self.get_base_path() monolithe_config = MonolitheConfig.config_with_path( "%s/conf/conf.ini" % base_path) generator = APIDocumentationGenerator( monolithe_config=monolithe_config) generator.generate_from_folder(folder="%s/specifications" % base_path)
class Generator(object): def __init__(self, monolithe_config): """ """ self.monolithe_config = monolithe_config def initialize_folder_manager(self, folder): """ """ self.folder_manager = FolderManager(folder=folder, monolithe_config=self.monolithe_config) def retrieve_monolithe_config_from_folder(self, language="python"): """ """ parser = self.folder_manager.get_monolithe_config() self.monolithe_config = MonolitheConfig() self.monolithe_config.set_config(parser) self.monolithe_config.language = language self.folder_manager.monolithe_config = self.monolithe_config return self.monolithe_config def generate_from_folder(self): """ """ specification_info = [] Printer.log("retrieving specifications from folder \"%s\"" % (self.folder_manager.folder)) api_info = self.folder_manager.get_api_info() specifications = self.folder_manager.get_all_specifications() self._resolve_parent_apis(specifications) specification_info.append({"specifications": specifications, "api": api_info}) Printer.log("%d specifications retrieved from folder \"%s\" (api version: %s)" % (len(specifications), self.folder_manager.folder, api_info["version"])) self.generate(specification_info=specification_info) def initialize_repository_manager(self, api_url, login_or_token, password, organization, repository, repository_path): """ """ self.repository_manager = RepositoryManager(monolithe_config=self.monolithe_config, api_url=api_url, login_or_token=login_or_token, password=password, organization=organization, repository=repository, repository_path=repository_path) def retrieve_monolithe_config_from_repo(self, branch, language): """ """ parser = self.repository_manager.get_monolithe_config(branch=branch) self.monolithe_config = MonolitheConfig() self.monolithe_config.set_config(parser) self.monolithe_config.language = language self.repository_manager.monolithe_config = self.monolithe_config return self.monolithe_config def generate_from_repo(self, branches): """ """ specification_info = [] for branch in branches: Printer.log("retrieving specifications from github \"%s/%s%s@%s\"" % (self.repository_manager.organization.lower(), self.repository_manager.repository.lower(), self.repository_manager.repository_path, branch)) api_info = self.repository_manager.get_api_info(branch=branch) specifications = self.repository_manager.get_all_specifications(branch=branch) self._resolve_parent_apis(specifications) specification_info.append({"specifications": specifications, "api": api_info}) Printer.log("%d specifications retrieved from branch \"%s\" (api version: %s)" % (len(specifications), branch, api_info["version"])) self.generate(specification_info=specification_info) def generate(self, specification_info): """ """ pass def install_user_vanilla(self, user_vanilla_path, output_path, multi_lang=True): """ """ if not user_vanilla_path or not len(user_vanilla_path): return if multi_lang: user_vanilla_path = os.path.join(user_vanilla_path, self.monolithe_config.language) else: user_vanilla_path = os.path.join(user_vanilla_path) if not os.path.exists(user_vanilla_path): Printer.warn("Could not find user vanilla folder at path %s. Ignoring" % user_vanilla_path) return for item in os.listdir(user_vanilla_path): s = os.path.join(user_vanilla_path, item) d = os.path.join(output_path, item) if os.path.isdir(s): shutil.copytree(s, d, False, None) else: shutil.copy2(s, d) # Utilities def _resolve_parent_apis(self, specifications): """ """ # certainly not the best algo ever... but I need to get somthing done :) for specification_rest_name, specification in specifications.items(): for rest_name, remote_spec in specifications.items(): for related_child_api in remote_spec.child_apis: if related_child_api.rest_name == specification.rest_name: parent_api = SpecificationAPI(specification=specification) parent_api.rest_name = related_child_api.rest_name if specification.allows_get: parent_api.allows_get = True if specification.allows_create: parent_api.allows_create = True if specification.allows_update: parent_api.allows_update = True if specification.allows_delete: parent_api.allows_Delete = True specification.parent_apis.append(parent_api)
def get_monolithe_config(self, config_path): if config_path is None: config_path = "%s/monolithe.ini" % self.folder return MonolitheConfig(config_path)
class Generator(object): def __init__(self, monolithe_config): """ """ self.monolithe_config = monolithe_config def initialize_folder_manager(self, folder): """ """ self.folder_manager = FolderManager( folder=folder, monolithe_config=self.monolithe_config) def retrieve_monolithe_config_from_folder(self): """ """ parser = self.folder_manager.get_monolithe_config() self.monolithe_config = MonolitheConfig() self.monolithe_config.set_config(parser) self.folder_manager.monolithe_config = self.monolithe_config def generate_from_folder(self): """ """ specification_info = [] Printer.log("retrieving specifications from folder \"%s\"" % (self.folder_manager.folder)) api_info = self.folder_manager.get_api_info() specifications = self.folder_manager.get_all_specifications() self._resolve_parent_apis(specifications) specification_info.append({ "specifications": specifications, "api": api_info }) Printer.log( "%d specifications retrieved from folder \"%s\" (api version: %s)" % (len(specifications), self.folder_manager.folder, api_info["version"])) self.generate(specification_info=specification_info) def initialize_repository_manager(self, api_url, login_or_token, password, organization, repository, repository_path): """ """ self.repository_manager = RepositoryManager( monolithe_config=self.monolithe_config, api_url=api_url, login_or_token=login_or_token, password=password, organization=organization, repository=repository, repository_path=repository_path) def retrieve_monolithe_config_from_repo(self, branch): """ """ parser = self.repository_manager.get_monolithe_config(branch=branch) self.monolithe_config = MonolitheConfig() self.monolithe_config.set_config(parser) self.repository_manager.monolithe_config = self.monolithe_config def generate_from_repo(self, branches): """ """ specification_info = [] for branch in branches: Printer.log( "retrieving specifications from github \"%s/%s%s@%s\"" % (self.repository_manager.organization.lower(), self.repository_manager.repository.lower(), self.repository_manager.repository_path, branch)) api_info = self.repository_manager.get_api_info(branch=branch) specifications = self.repository_manager.get_all_specifications( branch=branch) self._resolve_parent_apis(specifications) specification_info.append({ "specifications": specifications, "api": api_info }) Printer.log( "%d specifications retrieved from branch \"%s\" (api version: %s)" % (len(specifications), branch, api_info["version"])) self.generate(specification_info=specification_info) def generate(self, specification_info): """ """ pass def install_system_vanilla(self, current_file, output_path): """ """ if os.path.exists(output_path): shutil.rmtree(output_path) system_vanilla_path = os.path.join(os.path.dirname(current_file), "vanilla") shutil.copytree(system_vanilla_path, output_path) def install_user_vanilla(self, user_vanilla_path, output_path): """ """ if not user_vanilla_path or not len(user_vanilla_path): return if not os.path.exists(user_vanilla_path): Printer.raiseError( "Could not find user vanilla folder at path %s" % user_vanilla_path) for item in os.listdir(user_vanilla_path): s = os.path.join(user_vanilla_path, item) d = os.path.join(output_path, item) if os.path.isdir(s): shutil.copytree(s, d, False, None) else: shutil.copy2(s, d) ## Utilities def _resolve_parent_apis(self, specifications): """ """ # certainly not the best algo ever... but I need to get somthing done :) for specification_rest_name, specification in specifications.iteritems( ): for rest_name, remote_spec in specifications.iteritems(): for related_child_api in remote_spec.child_apis: if related_child_api.remote_specification_name == specification.rest_name: parent_api = SpecificationAPI( remote_specification_name=related_child_api. remote_specification_name, specification=specification) if specification.allows_get: parent_api.allows_get = True if specification.allows_create: parent_api.allows_create = True if specification.allows_update: parent_api.allows_update = True if specification.allows_delete: parent_api.allows_Delete = True specification.parent_apis.append(parent_api)
def main(argv=sys.argv): """ """ parser = argparse.ArgumentParser(description="Generates an API documentation from a specification set") parser.add_argument("-g", "--github", dest="api_url", metavar="github_api_url", help="The GitHub API URL. Can be given by setting the environment variable \"MONOLITHE_GITHUB_API_URL\"", type=str) parser.add_argument("-l", "--login", dest="login", metavar="login_login", help="The GitHub Login (if set, you will be prompted for your password). Can be given by setting the environment variable \"MONOLITHE_GITHUB_LOGIN\"", type=str) parser.add_argument("-t", "--token", dest="token", metavar="github_token", help="The GitHub Token (if set, --login will be ignored). To generate a token, go here https://github.com/settings/tokens. Can be given by setting the environment variable \"$MONOLITHE_GITHUB_TOKEN\"", type=str) parser.add_argument("-o", "--organization", dest="organization", metavar="github_organization", help="The GitHub Organization. Can be given by setting the environment variable \"MONOLITHE_GITHUB_ORGANIZATION\"", type=str) parser.add_argument("-r", "--repository", dest="repository", metavar="github_repository", help="The GitHub Repository. Can be given by setting the environment variable \"MONOLITHE_GITHUB_REPOSITORY\"", type=str) parser.add_argument("-p", "--path", dest="repository_path", metavar="path", help="The relative repository path of the specification folder. Can be given by setting the environment variable \"MONOLITHE_GITHUB_REPOSITORY_PATH\"", type=str) parser.add_argument("-b", "--branches", dest="branches", metavar="branches", help="The branches of the specifications to use to generate the documentation (examples: \"master 3.2\")", nargs="*", type=str) parser.add_argument("-f", "--folder", dest="folder", metavar="folder", help="Path of the specifications folder. If set, all other attributes will be ignored", type=str) parser.add_argument("-c", "--config", dest="config_path", metavar="config_path", help="Path the monolithe configuration file", type=str) parser.add_argument("--vanilla-prefix", dest="vanilla_prefix", help="Prefix added to all vanilla path declared in the monolithe configuration file", required=False, type=str) args = parser.parse_args() monolithe_config = None if args.config_path: monolithe_config = MonolitheConfig.config_with_path(args.config_path) if monolithe_config and args.vanilla_prefix: monolithe_config.set_option("sdk_user_vanilla", "%s/%s" % (args.vanilla_prefix, monolithe_config.get_option("sdk_user_vanilla", "sdk")), "sdk") monolithe_config.set_option("sdkdoc_user_vanilla", "%s/%s" % (args.vanilla_prefix, monolithe_config.get_option("sdkdoc_user_vanilla", "sdkdoc")), "sdkdoc") monolithe_config.set_option("apidoc_user_vanilla", "%s/%s" % (args.vanilla_prefix, monolithe_config.get_option("apidoc_user_vanilla", "apidoc")), "apidoc") generator = APIDocumentationGenerator(monolithe_config=monolithe_config) if args.folder: generator.initialize_folder_manager(folder=args.folder) if not monolithe_config: generator.retrieve_monolithe_config_from_folder() generator.generate_from_folder() else: # Use environment variable if necessary if not args.api_url and "MONOLITHE_GITHUB_API_URL" in os.environ: args.api_url = os.environ["MONOLITHE_GITHUB_API_URL"] if not args.token and not args.login: if "MONOLITHE_GITHUB_TOKEN" in os.environ: args.token = os.environ["MONOLITHE_GITHUB_TOKEN"] elif "MONOLITHE_GITHUB_LOGIN" in os.environ: args.login = os.environ["MONOLITHE_GITHUB_LOGIN"] if not args.organization and "MONOLITHE_GITHUB_ORGANIZATION" in os.environ: args.organization = os.environ["MONOLITHE_GITHUB_ORGANIZATION"] if not args.repository and "MONOLITHE_GITHUB_REPOSITORY" in os.environ: args.repository = os.environ["MONOLITHE_GITHUB_REPOSITORY"] if not args.repository_path and "MONOLITHE_GITHUB_REPOSITORY_PATH" in os.environ: args.repository_path = os.environ["MONOLITHE_GITHUB_REPOSITORY_PATH"] if not args.config_path and "MONOLITHE_CONFIG_PATH" in os.environ: args.config_path = os.environ["MONOLITHE_CONFIG_PATH"] if not args.login and not args.token: args.login = raw_input("Enter your GitHub login: "******"/" # Ask for password if args.login: password = getpass.getpass(prompt="Enter your GitHub password for %s: " % args.login) login_or_token = args.login else: password = None login_or_token = args.token generator.initialize_repository_manager(api_url=args.api_url, login_or_token=login_or_token, password=password, organization=args.organization, repository=args.repository, repository_path=args.repository_path) if not monolithe_config: generator.retrieve_monolithe_config_from_repo(branch=args.branches[0]) generator.generate_from_repo(branches=args.branches)
def main(argv=sys.argv): """ """ parser = argparse.ArgumentParser( description="Generates a SDK according from a specification set") parser.add_argument( "-g", "--github", dest="api_url", metavar="github_api_url", help= "The GitHub API URL. Can be given by setting the environment variable \"MONOLITHE_GITHUB_API_URL\"", type=str) parser.add_argument( "-l", "--login", dest="login", metavar="login_login", help= "The GitHub Login (if set, you will be prompted for your password). Can be given by setting the environment variable \"MONOLITHE_GITHUB_LOGIN\"", type=str) parser.add_argument( "-t", "--token", dest="token", metavar="github_token", help= "The GitHub Token (if set, --login will be ignored). To generate a token, go here https://github.com/settings/tokens. Can be given by setting the environment variable \"$MONOLITHE_GITHUB_TOKEN\"", type=str) parser.add_argument( "-o", "--organization", dest="organization", metavar="github_organization", help= "The GitHub Organization. Can be given by setting the environment variable \"MONOLITHE_GITHUB_ORGANIZATION\"", type=str) parser.add_argument( "-r", "--repository", dest="repository", metavar="github_repository", help= "The GitHub Repository. Can be given by setting the environment variable \"MONOLITHE_GITHUB_REPOSITORY\"", type=str) parser.add_argument( "-b", "--branches", dest="branches", metavar="branches", help= "The branches of the specifications to use to generate the documentation (examples: \"master 3.2\")", nargs="*", type=str) parser.add_argument( "-p", "--path", dest="repository_path", metavar="path", help= "The relative repository path of the specification folder. Can be given by setting the environment variable \"MONOLITHE_GITHUB_REPOSITORY_PATH\"", type=str) parser.add_argument( "-f", "--folder", dest="folder", metavar="folder", help= "Path of the specifications folder. If set, all other attributes will be ignored", type=str) parser.add_argument("-c", "--config", dest="config_path", metavar="config_path", help="Path the monolithe configuration file", type=str) parser.add_argument("-d", "--doc", dest="generate_doc", help="generate documentation of the SDK", action="store_true") parser.add_argument( "--vanilla-prefix", dest="vanilla_prefix", help= "Prefix added to all vanilla path declared in the monolithe configuration file", required=False, type=str) args = parser.parse_args() monolithe_config = None if args.config_path: monolithe_config = MonolitheConfig.config_with_path(args.config_path) if monolithe_config and args.vanilla_prefix: monolithe_config.set_option( "sdk_user_vanilla", "%s/%s" % (args.vanilla_prefix, monolithe_config.get_option("sdk_user_vanilla", "sdk")), "sdk") monolithe_config.set_option( "sdkdoc_user_vanilla", "%s/%s" % (args.vanilla_prefix, monolithe_config.get_option("sdkdoc_user_vanilla", "sdkdoc")), "sdkdoc") monolithe_config.set_option( "apidoc_user_vanilla", "%s/%s" % (args.vanilla_prefix, monolithe_config.get_option("apidoc_user_vanilla", "apidoc")), "apidoc") generator = SDKGenerator(monolithe_config=monolithe_config) if args.folder: generator.initialize_folder_manager(folder=args.folder) if not monolithe_config: generator.retrieve_monolithe_config_from_folder() generator.generate_from_folder() else: # Use environment variable if necessary if not args.api_url and "MONOLITHE_GITHUB_API_URL" in os.environ: args.api_url = os.environ["MONOLITHE_GITHUB_API_URL"] if not args.token and not args.login: if "MONOLITHE_GITHUB_TOKEN" in os.environ: args.token = os.environ["MONOLITHE_GITHUB_TOKEN"] elif "MONOLITHE_GITHUB_LOGIN" in os.environ: args.login = os.environ["MONOLITHE_GITHUB_LOGIN"] if not args.organization and "MONOLITHE_GITHUB_ORGANIZATION" in os.environ: args.organization = os.environ["MONOLITHE_GITHUB_ORGANIZATION"] if not args.repository and "MONOLITHE_GITHUB_REPOSITORY" in os.environ: args.repository = os.environ["MONOLITHE_GITHUB_REPOSITORY"] if not args.repository_path and "MONOLITHE_GITHUB_REPOSITORY_PATH" in os.environ: args.repository_path = os.environ[ "MONOLITHE_GITHUB_REPOSITORY_PATH"] if not args.config_path and "MONOLITHE_CONFIG_PATH" in os.environ: args.config_path = os.environ["MONOLITHE_CONFIG_PATH"] # Additional validation if not args.login and not args.token: args.login = raw_input("Enter your GitHub login: "******"/" # Ask for password if args.login: password = getpass.getpass( prompt="Enter your GitHub password for %s: " % args.login) login_or_token = args.login else: password = None login_or_token = args.token generator.initialize_repository_manager( api_url=args.api_url, login_or_token=login_or_token, password=password, organization=args.organization, repository=args.repository, repository_path=args.repository_path) if not monolithe_config: generator.retrieve_monolithe_config_from_repo( branch=args.branches[0]) generator.generate_from_repo(branches=args.branches) # Generate SDK documentation if args.generate_doc: doc_generator = SDKDocGenerator(monolithe_config=monolithe_config) doc_generator.generate()
def main(argv=sys.argv): """ """ parser = argparse.ArgumentParser(description="Generates a SDK according from a specification set") parser.add_argument("-g", "--github", dest="api_url", metavar="github_api_url", help="The GitHub API URL. Can be given by setting the environment variable \"MONOLITHE_GITHUB_API_URL\"", type=str) parser.add_argument("-l", "--login", dest="login", metavar="login_login", help="The GitHub Login (if set, you will be prompted for your password). Can be given by setting the environment variable \"MONOLITHE_GITHUB_LOGIN\"", type=str) parser.add_argument("-t", "--token", dest="token", metavar="github_token", help="The GitHub Token (if set, --login will be ignored). To generate a token, go here https://github.com/settings/tokens. Can be given by setting the environment variable \"$MONOLITHE_GITHUB_TOKEN\"", type=str) parser.add_argument("-o", "--organization", dest="organization", metavar="github_organization", help="The GitHub Organization. Can be given by setting the environment variable \"MONOLITHE_GITHUB_ORGANIZATION\"", type=str) parser.add_argument("-r", "--repository", dest="repository", metavar="github_repository", help="The GitHub Repository. Can be given by setting the environment variable \"MONOLITHE_GITHUB_REPOSITORY\"", type=str) parser.add_argument("-b", "--branches", dest="branches", metavar="branches", help="The branches of the specifications to use to generate the documentation (examples: \"master 3.2\")", nargs="*", type=str) parser.add_argument("-p", "--path", dest="repository_path", metavar="path", help="The relative repository path of the specification folder. Can be given by setting the environment variable \"MONOLITHE_GITHUB_REPOSITORY_PATH\"", type=str) parser.add_argument("-f", "--folder", dest="folder", metavar="folder", help="Path of the specifications folder. If set, all other attributes will be ignored", type=str) parser.add_argument("-c", "--config", dest="config_path", metavar="config_path", help="Path the monolithe configuration file", type=str) parser.add_argument("-d", "--doc", dest="generate_doc", help="generate documentation of the SDK", action="store_true") parser.add_argument("--vanilla-prefix", dest="vanilla_prefix", help="Prefix added to all vanilla path declared in the monolithe configuration file", required=False, type=str) parser.add_argument("--generation-version", dest="generation_version", help="Overwrite the sdk version given in monolithe.conf", required=False, type=str) parser.add_argument("-L", "--language", dest="language", help="Choose the output language of the SDK. Default is python", default='python', type=str) args = parser.parse_args() monolithe_config = None if args.config_path: monolithe_config = MonolitheConfig.config_with_path(args.config_path) if monolithe_config and args.vanilla_prefix: monolithe_config.set_option("user_vanilla", "%s/%s" % (args.vanilla_prefix, monolithe_config.get_option("user_vanilla", "transformer")), "transformer") if monolithe_config and args.generation_version: monolithe_config.set_option("version", args.generation_version, "transformer") if monolithe_config: monolithe_config.language = args.language generator = SDKGenerator(monolithe_config=monolithe_config) if args.folder: generator.initialize_folder_manager(folder=args.folder) if not monolithe_config: monolithe_config = generator.retrieve_monolithe_config_from_folder(language=args.language) generator.generate_from_folder() else: if not args.branches: print("You must provide the --branches options. Use --help for help.") sys.exit(1) # Use environment variable if necessary if not args.api_url and "MONOLITHE_GITHUB_API_URL" in os.environ: args.api_url = os.environ["MONOLITHE_GITHUB_API_URL"] if not args.token and not args.login: if "MONOLITHE_GITHUB_TOKEN" in os.environ: args.token = os.environ["MONOLITHE_GITHUB_TOKEN"] elif "MONOLITHE_GITHUB_LOGIN" in os.environ: args.login = os.environ["MONOLITHE_GITHUB_LOGIN"] if not args.organization and "MONOLITHE_GITHUB_ORGANIZATION" in os.environ: args.organization = os.environ["MONOLITHE_GITHUB_ORGANIZATION"] if not args.repository and "MONOLITHE_GITHUB_REPOSITORY" in os.environ: args.repository = os.environ["MONOLITHE_GITHUB_REPOSITORY"] if not args.repository_path and "MONOLITHE_GITHUB_REPOSITORY_PATH" in os.environ: args.repository_path = os.environ["MONOLITHE_GITHUB_REPOSITORY_PATH"] if not args.config_path and "MONOLITHE_CONFIG_PATH" in os.environ: args.config_path = os.environ["MONOLITHE_CONFIG_PATH"] if not args.repository_path: args.repository_path = "/" login_or_token = None password = None if args.token: password = None login_or_token = args.token elif args.login: login_or_token = args.login password = getpass.getpass(prompt="Enter your GitHub password for %s: " % args.login) generator.initialize_repository_manager(api_url=args.api_url, login_or_token=login_or_token, password=password, organization=args.organization, repository=args.repository, repository_path=args.repository_path) if not monolithe_config: monolithe_config = generator.retrieve_monolithe_config_from_repo(branch=args.branches[0], language=args.language) generator.generate_from_repo(branches=args.branches) # Generate SDK documentation if args.generate_doc: generator.generate_documentation()