mirror of
https://github.com/altlinux/gpupdate.git
synced 2025-08-25 05:49:25 +03:00
Added deleting folders according to flags
This commit is contained in:
@ -27,24 +27,25 @@ from gpt.folders import (
|
|||||||
from util.windows import expand_windows_var
|
from util.windows import expand_windows_var
|
||||||
|
|
||||||
def remove_dir_tree(path, delete_files=False, delete_folder=False, delete_sub_folders=False):
|
def remove_dir_tree(path, delete_files=False, delete_folder=False, delete_sub_folders=False):
|
||||||
|
content = list()
|
||||||
for entry in path.iterdir():
|
for entry in path.iterdir():
|
||||||
if entry.is_file():
|
content.append(entry)
|
||||||
|
if entry.is_file() and delete_files:
|
||||||
entry.unlink()
|
entry.unlink()
|
||||||
if entry.is_dir():
|
content.remove(entry)
|
||||||
if delete_sub_folders:
|
if entry.is_dir() and delete_sub_folders:
|
||||||
remove_dir_tree(entry,
|
content.remove(entry)
|
||||||
delete_files,
|
remove_dir_tree(entry, delete_files, delete_folder, delete_sub_folders)
|
||||||
delete_folder,
|
if delete_folder and not content:
|
||||||
delete_sub_folders)
|
|
||||||
|
|
||||||
if delete_folder:
|
|
||||||
path.rmdir()
|
path.rmdir()
|
||||||
|
|
||||||
|
|
||||||
def str2bool(boolstr):
|
def str2bool(boolstr):
|
||||||
if boolstr.lower() in ['true', 'yes', '1']:
|
if boolstr.lower() in ['true', 'yes', '1']:
|
||||||
return True
|
return True
|
||||||
return False
|
return False
|
||||||
|
|
||||||
|
|
||||||
class Folder:
|
class Folder:
|
||||||
def __init__(self, folder_object, username):
|
def __init__(self, folder_object, username):
|
||||||
self.folder_path = Path(expand_windows_var(folder_object.path, username).replace('\\', '/'))
|
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)
|
self.folder_path.mkdir(parents=True, exist_ok=True)
|
||||||
|
|
||||||
def _delete_action(self):
|
def _delete_action(self):
|
||||||
remove_dir_tree(self.folder_path,
|
if self.folder_path.exists():
|
||||||
self.delete_files,
|
remove_dir_tree(self.folder_path,
|
||||||
self.delete_folder,
|
self.delete_files,
|
||||||
self.delete_sub_folders)
|
self.delete_folder,
|
||||||
|
self.delete_sub_folders)
|
||||||
|
|
||||||
def act(self):
|
def act(self):
|
||||||
if self.action == FileAction.CREATE:
|
if self.action == FileAction.CREATE:
|
||||||
|
Reference in New Issue
Block a user