diff --git a/project_manager/entry.py b/project_manager/entry.py index cb931dd..7ef9ea5 100644 --- a/project_manager/entry.py +++ b/project_manager/entry.py @@ -32,9 +32,9 @@ class Entry: def show(self): self._logger.info(f"{self}") for task_name, commands in self._tasks.items(): - self._logger.debug(f" {task_name}") + self._logger.info(f" {task_name}") for command in commands: - self._logger.trace(f" {command}") + self._logger.debug(f" {command}") def run_task(self, task_name: str): if task_name == "show": diff --git a/project_manager/pipe/type/get.py b/project_manager/pipe/type/get.py index 8ab9402..ff2f45c 100644 --- a/project_manager/pipe/type/get.py +++ b/project_manager/pipe/type/get.py @@ -3,7 +3,7 @@ from typing import Any, Optional from ..core import Pipe -__all__ = ("GetPipe",) +__all__ = ("GetPipe", "KeyPipe") class GetPipe(Pipe[dict, Any]): @@ -19,3 +19,14 @@ class GetPipe(Pipe[dict, Any]): if result: result = result.get(key) return result + + +class KeyPipe(Pipe[dict, Any]): + type = "key" + + def __init__(self, keyindex: Optional[str]): + self._keyindex = int(keyindex) if keyindex else 0 + + def apply(self, value: dict, basepath: Path) -> Optional[Any]: + keys = list(value.keys()) + return keys[self._keyindex] diff --git a/project_manager/preset/default/nodejs.toml b/project_manager/preset/default/nodejs.toml index 3c0cd06..a4c3d44 100644 --- a/project_manager/preset/default/nodejs.toml +++ b/project_manager/preset/default/nodejs.toml @@ -13,6 +13,14 @@ commands = ["npm install --legacy-peer-deps"] conditions = ["file(node_modules/jest)"] commands = ["npx jest"] +[presets.nodejs.tasks.build.npm] +conditions = ["file(package.json) | get(scripts.build)"] +commands = ["npm run build"] + +[presets.nodejs.tasks.publish.npm] +conditions = ["file(package.json) | get(scripts.publish)"] +commands = ["npm run publish"] + [presets.nodejs.tasks.clean.node_modules] conditions = ["file(node_modules)"] commands = ["rm -rf node_modules"] diff --git a/project_manager/preset/default/python.toml b/project_manager/preset/default/python.toml index d14906d..57f04c2 100644 --- a/project_manager/preset/default/python.toml +++ b/project_manager/preset/default/python.toml @@ -8,6 +8,20 @@ conditions = [ variables.python_version = "file(pyproject.toml) | get(tool.poetry.dependencies.python) | search((\\d.\\d))" commands = ["poetry env use {python_version}", "poetry install"] +[presets.python.tasks.build.poetry] +conditions = [ + "file(pyproject.toml) | get(build-system.build-backend) | equal(poetry.core.masonry.api)", +] +commands = ["poetry build"] + +[presets.python.tasks.publish.poetry] +conditions = [ + "file(pyproject.toml) | get(build-system.build-backend) | equal(poetry.core.masonry.api)", + "file(poetry.toml)", +] +variables.python_repository = "file(poetry.toml) | get(repositories) | key(0)" +commands = ["poetry publish -r {python_repository}"] + [presets.python.tasks.test.pytest] conditions = ["file(.venv/bin/pytest)"] commands = [".venv/bin/pytest -p no:warnings"] diff --git a/pyproject.toml b/pyproject.toml index 8fabb35..c5c57d2 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [tool.poetry] name = "project-manager" -version = "0.1.0" +version = "0.1.1" description = "" authors = ["shmyga "] readme = "README.md"