--force clearOutput removes output directory, improved logging it

This commit is contained in:
MaXFeeD
2026-07-31 18:55:45 +03:00
parent 959ee43782
commit 7aed0e057e
4 changed files with 19 additions and 9 deletions
+5 -3
View File
@@ -108,11 +108,13 @@ def task_resources() -> int:
description="Optionally deletes the output folder; has no effect by default."
)
def task_clear_output(force: bool = False) -> int:
if GLOBALS.MAKE_CONFIG.get_value("development.clearOutput", False) or force:
GLOBALS.PROJECT_STRUCTURE.cleanup(clear_output=True)
from .package import pretty_cleanup_directory
if PROPERTIES.get_value("release"):
from .package import pretty_cleanup_directory
pretty_cleanup_directory(GLOBALS.MAKE_CONFIG.get_build_path())
if force or GLOBALS.MAKE_CONFIG.get_value("development.clearOutput", False):
GLOBALS.PROJECT_STRUCTURE.cleanup(clear_output=True)
if force or PROPERTIES.get_value("release"):
pretty_cleanup_directory(GLOBALS.PROJECT_STRUCTURE.directory)
return 0
@task(
+2
View File
@@ -44,6 +44,7 @@ def collect_classpath_files(directories: Collection[str]) -> List[str]:
continue
libraries = get_all_files(classpath_directory, (".jar"))
classpath.extend(libraries)
global TOOLCHAIN_CLASSPATH
if not TOOLCHAIN_CLASSPATH:
from .output_directory import get_config_directory
@@ -56,6 +57,7 @@ def collect_classpath_files(directories: Collection[str]) -> List[str]:
TOOLCHAIN_CLASSPATH.remove(innercore_test)
except ValueError:
attention("Failed to exclude 'innercore-test.jar' from classpath for package build, contact developer and tell them they are a arsehole.")
if TOOLCHAIN_CLASSPATH:
classpath.extend(TOOLCHAIN_CLASSPATH)
return classpath
+3 -2
View File
@@ -31,8 +31,9 @@ def get_path_set(locations: List[str], error_sensitive: bool = False) -> Optiona
def pretty_cleanup_directory(path: str) -> None:
start_time = time.time()
remove_tree(GLOBALS.TOOLCHAIN_CONFIG.get_path(path))
success(f"Completed {basename(path)} cleanup in {int((time.time() - start_time) * 100) / 100}s")
absolute_path = GLOBALS.TOOLCHAIN_CONFIG.get_path(path)
if remove_tree(absolute_path):
success(f"Completed {basename(path)} cleanup in {int((time.time() - start_time) * 100) / 100}s")
def collect_project_templates() -> List[str]:
templates = []
+9 -4
View File
@@ -48,16 +48,20 @@ def ensure_file(path: str) -> None:
if isdir(path) or islink(path):
move_to_backup(path)
def remove_tree(directory: str) -> None:
def remove_tree(directory: str) -> bool:
"""
Removes existing files, directories and links recursive.
"""
if not exists(directory):
return
return False
if isfile(directory) or islink(directory):
os.remove(directory)
return
shutil.rmtree(directory, ignore_errors=True)
return True
try:
shutil.rmtree(directory, ignore_errors=False)
except Exception:
return False
return True
def copy_file(source: str, destination: str) -> None:
"""
@@ -66,6 +70,7 @@ def copy_file(source: str, destination: str) -> None:
"""
source = abspath(source)
destination = abspath(destination)
ensure_file_directory(destination)
try:
shutil.copy(source, destination)