Add generate, report, and utils modules
This commit is contained in:
48
config_auditor/utils.py
Normal file
48
config_auditor/utils.py
Normal file
@@ -0,0 +1,48 @@
|
|||||||
|
import sys
|
||||||
|
from pathlib import Path
|
||||||
|
from typing import List, Optional
|
||||||
|
|
||||||
|
|
||||||
|
def find_config_file(path: Path, names: List[str]) -> Optional[Path]:
|
||||||
|
for name in names:
|
||||||
|
config_path = path / name
|
||||||
|
if config_path.exists():
|
||||||
|
return config_path
|
||||||
|
|
||||||
|
for parent in path.parents:
|
||||||
|
config_path = parent / name
|
||||||
|
if config_path.exists():
|
||||||
|
return config_path
|
||||||
|
|
||||||
|
return None
|
||||||
|
|
||||||
|
|
||||||
|
def get_exit_code(issue_count: int, critical_count: int) -> int:
|
||||||
|
if critical_count > 0:
|
||||||
|
return 4
|
||||||
|
elif issue_count > 0:
|
||||||
|
return 4
|
||||||
|
return 0
|
||||||
|
|
||||||
|
|
||||||
|
def format_severity(severity: str) -> str:
|
||||||
|
colors = {
|
||||||
|
"critical": "red",
|
||||||
|
"warning": "yellow",
|
||||||
|
"info": "blue",
|
||||||
|
}
|
||||||
|
return colors.get(severity, "white")
|
||||||
|
|
||||||
|
|
||||||
|
def print_error(message: str, exit_code: int = 1):
|
||||||
|
print(f"Error: {message}", file=sys.stderr)
|
||||||
|
sys.exit(exit_code)
|
||||||
|
|
||||||
|
|
||||||
|
def validate_path(path: str) -> Path:
|
||||||
|
p = Path(path)
|
||||||
|
if not p.exists():
|
||||||
|
print_error(f"Path does not exist: {path}", 2)
|
||||||
|
if not p.is_dir():
|
||||||
|
print_error(f"Path is not a directory: {path}", 2)
|
||||||
|
return p
|
||||||
Reference in New Issue
Block a user