From 1dc635ca091b73a9fd59d7e8ce17a3f3239ce82a Mon Sep 17 00:00:00 2001 From: Stanislav Khlud Date: Fri, 9 Aug 2024 19:53:17 +0700 Subject: [PATCH] Replace usage of cmd commands with python --- saritasa_invocations/cruft.py | 5 +++-- saritasa_invocations/django.py | 3 ++- saritasa_invocations/docker.py | 7 ++++--- saritasa_invocations/k8s.py | 3 ++- saritasa_invocations/system.py | 5 +++-- 5 files changed, 14 insertions(+), 9 deletions(-) diff --git a/saritasa_invocations/cruft.py b/saritasa_invocations/cruft.py index c1752d4..246bb97 100644 --- a/saritasa_invocations/cruft.py +++ b/saritasa_invocations/cruft.py @@ -1,5 +1,6 @@ import json import pathlib +import shutil import invoke @@ -53,8 +54,8 @@ def create_project( config = _config.Config.from_context(context) tmp_folder = config.cruft.project_tmp_folder printing.print_success(f"Recreating tmp ({tmp_folder}) folder") - context.run(f"rm -rf {tmp_folder}") - context.run(f"mkdir -p {tmp_folder}") + shutil.rmtree(tmp_folder, ignore_errors=True) + pathlib.Path(tmp_folder).mkdir(parents=True, exist_ok=True) with context.cd(tmp_folder): context.run( "cruft create ../. --no-input --overwrite-if-exists " diff --git a/saritasa_invocations/django.py b/saritasa_invocations/django.py index e35cf8c..471dec6 100644 --- a/saritasa_invocations/django.py +++ b/saritasa_invocations/django.py @@ -1,5 +1,6 @@ import collections.abc import os +import pathlib import invoke @@ -338,7 +339,7 @@ def load_django_remote_env_db_settings( import decouple env_config = decouple.Config(decouple.RepositoryEnv(env_path)) - context.run(f"rm {env_path}") + pathlib.Path(env_path).unlink() return { arg: str(env_config(env_var)) for arg, env_var in config.django.remote_db_config_mapping.items() diff --git a/saritasa_invocations/docker.py b/saritasa_invocations/docker.py index 392452b..b606f2f 100644 --- a/saritasa_invocations/docker.py +++ b/saritasa_invocations/docker.py @@ -1,5 +1,6 @@ import collections.abc import pathlib +import shutil import invoke @@ -26,8 +27,8 @@ def buildpack( config = _config.Config.from_context(context) # Builder needs requirements.txt if pathlib.Path(config.docker.buildpack_requirements_path).exists(): - context.run( - f"cp {config.docker.buildpack_requirements_path}/{env}.txt " + shutil.copy( + f"{config.docker.buildpack_requirements_path}/{env}.txt", "requirements.txt", ) builder = builder or config.docker.buildpack_builder @@ -35,7 +36,7 @@ def buildpack( tag = tag or config.docker.build_image_tag context.run(f"pack build --builder={builder} --run-image={runner} {tag}") if pathlib.Path(config.docker.buildpack_requirements_path).exists(): - context.run("rm requirements.txt") + pathlib.Path("requirements.txt").unlink() def docker_compose_run( diff --git a/saritasa_invocations/k8s.py b/saritasa_invocations/k8s.py index dbec69c..7747356 100644 --- a/saritasa_invocations/k8s.py +++ b/saritasa_invocations/k8s.py @@ -1,6 +1,7 @@ import collections import collections.abc import contextlib +import pathlib import typing import invoke @@ -259,7 +260,7 @@ def download_file_and_remove_afterwards( printing.print_success( f"Deleting file({path_to_where_save_file}) after use", ) - context.run(f"rm {path_to_where_save_file}") + pathlib.Path(path_to_where_save_file).unlink() @contextlib.contextmanager diff --git a/saritasa_invocations/system.py b/saritasa_invocations/system.py index 6bd60f8..f99fb7c 100644 --- a/saritasa_invocations/system.py +++ b/saritasa_invocations/system.py @@ -1,4 +1,5 @@ import pathlib +import shutil import invoke @@ -57,7 +58,7 @@ def _rewrite_file( ) -> None: """Copy file to destination.""" if force_update or not pathlib.Path(to_path).is_file(): - context.run(f"cp {from_path} {to_path}") + shutil.copy(from_path, to_path) @invoke.task @@ -74,4 +75,4 @@ def chown(context: invoke.Context) -> None: @invoke.task def create_tmp_folder(context: invoke.Context) -> None: """Create folder for temporary files.""" - context.run("mkdir -p .tmp") + pathlib.Path(".tmp").mkdir(parents=True, exist_ok=True)