diff --git a/spcd/__init__.py b/spcd/__init__.py index 0c17d01..11db87f 100644 --- a/spcd/__init__.py +++ b/spcd/__init__.py @@ -2,11 +2,11 @@ __version__ = "0.0.1" +import importlib import sys from os import environ, pathsep from pathlib import Path -import env from rwx import fs from rwx.log import stream as log from rwx.ps import run @@ -15,6 +15,8 @@ from spcd import cmd from spcd.ci import project, projects from spcd.util import browse, cat, split, step +env = importlib.import_module("env") + COMMANDS_PREFIX = "spcd-" @@ -37,7 +39,7 @@ def clone_project_branch() -> None: project.branch, "--", project.url, - project.root, + str(project.root), ) @@ -101,8 +103,8 @@ def main(main: str) -> None: install_commands(main) install_python_packages() else: - function = getattr(cmd, name.replace("-", "_")) - function(*arguments) + f = getattr(cmd, name.replace("-", "_")) + f(*arguments) def set_ssh() -> None: diff --git a/spcd/__main__.py b/spcd/__main__.py index 6aeca41..520540c 100755 --- a/spcd/__main__.py +++ b/spcd/__main__.py @@ -2,11 +2,11 @@ """Entry point.""" +import importlib import sys -import env - if __name__ == "__main__": + env = importlib.import_module("env") if env.SPCD_PYTHON_VENV_PACKAGES not in sys.path: sys.path.insert(0, env.SPCD_PYTHON_VENV_PACKAGES) from spcd import main diff --git a/spcd/cmd.py b/spcd/cmd.py index a1108ee..fe00db4 100644 --- a/spcd/cmd.py +++ b/spcd/cmd.py @@ -3,9 +3,9 @@ import os from pathlib import Path -import env from rwx import ps +from spcd import env from spcd.ci import project, projects from spcd.util import browse @@ -18,12 +18,10 @@ def spcd_browse_workspace() -> None: def spcd_build_project() -> None: """Perform the actual building process.""" for extension in ["py", "sh"]: - path = Path(project.root) / f"build.{extension}" + path = project.root / f"build.{extension}" if path.exists(): - ps.run(path) + ps.run(str(path)) break - else: - pass def spcd_check_project() -> None: diff --git a/spcd/project.py b/spcd/project.py index de8b164..709d554 100644 --- a/spcd/project.py +++ b/spcd/project.py @@ -41,7 +41,7 @@ class Project: # root for variable in ROOT: if value := projects.environment.get(variable, None): - self.root = value + self.root = Path(value) # url self.url = add_url_path(projects.url, self.name) diff --git a/spcd/util.py b/spcd/util.py index 9ea9dca..dd29da4 100644 --- a/spcd/util.py +++ b/spcd/util.py @@ -4,10 +4,11 @@ import os from pathlib import Path from urllib.parse import urlparse, urlunparse -import env from rwx import fs from rwx.log import stream as log +from spcd import env + def add_url_path(url: str, extra_path: str) -> str: """Append an extra segment to an existing URL.""" @@ -16,7 +17,7 @@ def add_url_path(url: str, extra_path: str) -> str: return urlunparse(parts) -def browse(root: str) -> None: +def browse(root: Path) -> None: """Frame the browsing of a root directory in the log output.""" paths = [] for directory, _, files in os.walk(root): @@ -24,17 +25,19 @@ def browse(root: str) -> None: absolute_path = Path(directory) / file relative_path = os.path.relpath(absolute_path, start=root) paths.append(relative_path) - frame(root) + text = str(root) + frame(text) for path in sorted(paths): log.info(path) - shut(root) + shut(text) -def cat(file: str) -> None: +def cat(file: Path) -> None: """Frame the content of a file in the log output.""" - frame(file) + text = str(file) + frame(text) log.info(fs.read_file_text(file).rstrip()) - shut(file) + shut(text) def frame(text: str) -> None: