1
0
mirror of https://github.com/altlinux/gpupdate.git synced 2025-03-23 02:50:18 +03:00

Added deleting folders according to flags

This commit is contained in:
Valery Sinelnikov 2022-01-19 16:59:17 +04:00
parent db31db0143
commit b2c7144a0d

View File

@ -27,24 +27,25 @@ from gpt.folders import (
from util.windows import expand_windows_var
def remove_dir_tree(path, delete_files=False, delete_folder=False, delete_sub_folders=False):
content = list()
for entry in path.iterdir():
if entry.is_file():
content.append(entry)
if entry.is_file() and delete_files:
entry.unlink()
if entry.is_dir():
if delete_sub_folders:
remove_dir_tree(entry,
delete_files,
delete_folder,
delete_sub_folders)
if delete_folder:
content.remove(entry)
if entry.is_dir() and delete_sub_folders:
content.remove(entry)
remove_dir_tree(entry, delete_files, delete_folder, delete_sub_folders)
if delete_folder and not content:
path.rmdir()
def str2bool(boolstr):
if boolstr.lower() in ['true', 'yes', '1']:
return True
return False
class Folder:
def __init__(self, folder_object, username):
self.folder_path = Path(expand_windows_var(folder_object.path, username).replace('\\', '/'))
@ -57,10 +58,11 @@ class Folder:
self.folder_path.mkdir(parents=True, exist_ok=True)
def _delete_action(self):
remove_dir_tree(self.folder_path,
self.delete_files,
self.delete_folder,
self.delete_sub_folders)
if self.folder_path.exists():
remove_dir_tree(self.folder_path,
self.delete_files,
self.delete_folder,
self.delete_sub_folders)
def act(self):
if self.action == FileAction.CREATE: