From 7b85483993cc155e089cbb8aed14dc295c1e51bf Mon Sep 17 00:00:00 2001 From: Zsolt Ero Date: Wed, 3 Jan 2024 14:21:20 +0100 Subject: [PATCH] put_dir --- ssh_lib/utils.py | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/ssh_lib/utils.py b/ssh_lib/utils.py index 7ba5922..2e5bfb3 100644 --- a/ssh_lib/utils.py +++ b/ssh_lib/utils.py @@ -1,6 +1,7 @@ import os import secrets import string +from pathlib import Path def put( @@ -27,6 +28,33 @@ def put( set_permission(c, remote_path, permissions=permissions, owner=owner, group=group) +def put_dir( + c, + local_dir: Path, + remote_dir, + dir_permissions=None, + file_permissions=None, + owner='root', + group=None, + exclude_set=None, +): + """ + copies all files from local path to remote path + not recursive + """ + + files = [file for file in local_dir.iterdir() if file.is_file()] + + if exclude_set: + files = [f for f in files if f.name not in exclude_set] + + c.sudo(f'mkdir -p "{remote_dir}"') + set_permission(c, remote_dir, permissions=dir_permissions, owner=owner, group=group) + + for file in files: + put(c, file, f'{remote_dir}/{file.name}', file_permissions, owner, group) + + def put_str(c, remote_path, str_): tmp_file = 'tmp.txt' with open(tmp_file, 'w') as outfile: