From 01d2ae1977b47984d280b33c71f3d3ded01b8f57 Mon Sep 17 00:00:00 2001 From: Devon Siemes Date: Tue, 26 Nov 2024 22:24:18 +0100 Subject: [PATCH] feat: optional deployment of schemas --- snakedeploy/deploy.py | 20 +++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) diff --git a/snakedeploy/deploy.py b/snakedeploy/deploy.py index 6f445f3..088caac 100644 --- a/snakedeploy/deploy.py +++ b/snakedeploy/deploy.py @@ -70,6 +70,21 @@ def deploy_config(self): shutil.copytree(config_dir, self.config, dirs_exist_ok=self.force) return no_config + def deploy_schemas(self): + """ + Deploy the schemas directory. + """ + schema_dir = Path(self.repo_clone) / "workflow" / "schemas" + dest_dir = self.dest_path / "workflow" / "schemas" + if not schema_dir.exists(): + logger.warning("No schemas directory found...") + else: + logger.info("Writing schemas...") + shutil.copytree( + schema_dir, + dest_dir, + ) + @property def repo_clone(self): if self._cloned is None: @@ -83,7 +98,7 @@ def repo_clone(self): return self._cloned.name - def deploy(self, name: str): + def deploy(self, name: str, schemas: bool = False): """ Deploy a source to a destination. """ @@ -95,6 +110,9 @@ def deploy(self, name: str): # Inspect repository to find existing snakefile self.deploy_snakefile(self.repo_clone, name) + if schemas: + self.deploy_schemas() + logger.info( self.env.get_template("post-instructions.txt.jinja").render( no_config=no_config, dest_path=self.dest_path