From 37319ca64c649d51d26b7c266e11c7b4a978016a Mon Sep 17 00:00:00 2001 From: KKlochko Date: Sat, 1 Apr 2023 11:32:26 +0300 Subject: [PATCH] (Added) update label option for groups. Added Drone CI/CD pipeline config. --- .drone.yaml | 18 +++++++++++++++++ CHANGELOG.org | 3 +++ pyproject.toml | 4 ++-- tui_rsync/cli/groups/group_update.py | 29 +++++++++++++++++++++++++++ tui_rsync/cli/source/source_update.py | 2 +- tui_rsync/models/models.py | 4 ++++ 6 files changed, 57 insertions(+), 3 deletions(-) create mode 100644 .drone.yaml diff --git a/.drone.yaml b/.drone.yaml new file mode 100644 index 0000000..dca9442 --- /dev/null +++ b/.drone.yaml @@ -0,0 +1,18 @@ +kind: pipeline +type: docker +name: default + +steps: +- name: publishing + image: python:3.10-alpine + environment: + PYPI_USERNAME: + from_secret: PYPI_USERNAME + PYPI_PASSWORD: + from_secret: PYPI_PASSWORD + commands: + - export POETRY_HOME=/opt/poetry + - python3 -m venv $POETRY_HOME + - $POETRY_HOME/bin/pip install poetry==1.3.2 + - $POETRY_HOME/bin/poetry install + - $POETRY_HOME/bin/poetry publish --build --username $PYPI_USERNAME --password $PYPI_PASSWORD diff --git a/CHANGELOG.org b/CHANGELOG.org index ff90a59..19ebbe9 100644 --- a/CHANGELOG.org +++ b/CHANGELOG.org @@ -47,4 +47,7 @@ Updated groups source creation. ** 0.8.10 <2023-03-25 Sat> Added *update labels* option for groups. +** 0.8.11 <2023-04-01 Sat> + Added *update label* option for groups. + Added *Drone CI/CD* pipeline config. diff --git a/pyproject.toml b/pyproject.toml index 970b6a9..525abc3 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,7 +1,7 @@ [tool.poetry] name = "tui-rsync" -version = "0.8.1" -description = "" +version = "0.8.11" +description = "tui-rsync will help you to manage yours backups." authors = ["Kostiantyn Klochko "] readme = "README.rst" license = "GPL-3.0-or-later" diff --git a/tui_rsync/cli/groups/group_update.py b/tui_rsync/cli/groups/group_update.py index ec2b54f..168a647 100644 --- a/tui_rsync/cli/groups/group_update.py +++ b/tui_rsync/cli/groups/group_update.py @@ -30,6 +30,35 @@ from typer.main import get_group console = Console() group_update = typer.Typer() +@group_update.command() +def label( + group_label: str = typer.Option( + None, "--group-label", "-l", + help="[b]The label[/] is a uniq identification of a [b]group[/].", + show_default=False + ), + new_group_label: str = typer.Option( + None, "--new-group-label", "-nl", + help="[b]The new label[/] will replace the [b]old group label[/].", + show_default=False + ), + +): + """ + [green b]Update[/] an [yellow]existing group label[/]. + """ + if group_label is None: + console.print("What is the [yellow b]old label of group[/]? ") + group_label = GroupPrompt.get_label_fzf() + + if new_group_label is None: + question = "What is the [yellow b]new label of the group[/]? " + new_group_label = GroupPrompt.ask_uuid(question) + + if Group.is_exist(group_label): + group = Group.get_group(group_label) + group.update_label(new_group_label) + @group_update.command() def labels( group_label: str = typer.Option( diff --git a/tui_rsync/cli/source/source_update.py b/tui_rsync/cli/source/source_update.py index d03fd1d..ecacddb 100644 --- a/tui_rsync/cli/source/source_update.py +++ b/tui_rsync/cli/source/source_update.py @@ -50,7 +50,7 @@ def label( label = LabelPrompt.get_label_fzf() if new_label is None: - question = "What is the [yellow b]new label of source[/]? " + question = "What is the [yellow b]new label of the source[/]? " new_label = LabelPrompt.ask_uuid(question) if Source.is_exist(label): diff --git a/tui_rsync/models/models.py b/tui_rsync/models/models.py index 4cf2108..a67ff81 100644 --- a/tui_rsync/models/models.py +++ b/tui_rsync/models/models.py @@ -140,6 +140,10 @@ class Group(BaseModel): group.save() return group + def update_label(self, new_label): + self.label = new_label + self.save() + def get_sources(self): """ Return iterator of the group sources.