Module: generate_system_reports
File: C:\Users\korde\Home\Github\task-runner-SDLC\src\tools\generate_system_reports.py
Language: Python
Imports
from invoke import taskimport osimport shutilimport jsonimport platformimport subprocessfrom pathlib import Pathfrom datetime import datetimeimport loggingfrom config import Configfrom utils.logger import setup_logging
Functions
check_tool_availability(tool_name)
Check if a tool is available in the system PATH
Parameters
tool_name
copy_file_safe(source, destination, description = '')
Safely copy a file with error handling
Parameters
sourcedestinationdescription— defaults to''
generate_system_reports(ctx, destination_folder = None, include_optional = False)
Decorators: @task
Generate comprehensive system reports and copy configuration files.
Args: destination_folder (str): Destination folder for reports (default: Config.BACKUP_DIR) include_optional (bool): Include optional/experimental package managers
Parameters
ctxdestination_folder— defaults toNoneinclude_optional— defaults toFalse
list_system_tools(ctx)
Decorators: @task
List available system package managers and tools.
Parameters
ctx
quick_backup(ctx, destination_folder = None)
Decorators: @task
Quick backup of essential system configurations. Only backs up core package managers and essential config files.
Parameters
ctxdestination_folder— defaults toNone
run_command_safe(ctx, command, output_file = None, description = '')
Safely run a command with error handling and logging
Args: ctx: Invoke context command (str): Command to run output_file (str): Optional output file for command result description (str): Description for logging
Returns: tuple: (success: bool, result: str)
Parameters
ctxcommandoutput_file— defaults toNonedescription— defaults to''