updates check
This commit is contained in:
@@ -7,6 +7,7 @@ import subprocess
|
|||||||
import configparser
|
import configparser
|
||||||
from pathlib import Path
|
from pathlib import Path
|
||||||
from typing import Dict, List, Tuple
|
from typing import Dict, List, Tuple
|
||||||
|
import importlib
|
||||||
|
|
||||||
# Unicode emoji
|
# Unicode emoji
|
||||||
CHECK = "✅"
|
CHECK = "✅"
|
||||||
@@ -20,6 +21,14 @@ def check_env_var(var: str) -> Tuple[bool, str]:
|
|||||||
"""Check if an environment variable is set."""
|
"""Check if an environment variable is set."""
|
||||||
return (var in os.environ, f"Environment variable '{var}' not set")
|
return (var in os.environ, f"Environment variable '{var}' not set")
|
||||||
|
|
||||||
|
def check_python_lib(lib: str) -> Tuple[bool, str]:
|
||||||
|
"""Check if a Python library is available."""
|
||||||
|
try:
|
||||||
|
importlib.import_module(lib.split('.')[0])
|
||||||
|
return (True, f"Python library '{lib}' found")
|
||||||
|
except ImportError:
|
||||||
|
return (False, f"Python library '{lib}' not found")
|
||||||
|
|
||||||
def check_stats_commands() -> List[Tuple[bool, str]]:
|
def check_stats_commands() -> List[Tuple[bool, str]]:
|
||||||
"""Check if all stat commands in config can run."""
|
"""Check if all stat commands in config can run."""
|
||||||
results = []
|
results = []
|
||||||
@@ -58,11 +67,9 @@ def check_stats_collector_config() -> List[Tuple[bool, str]]:
|
|||||||
def check_scripts() -> Dict[str, List[Tuple[bool, str]]]:
|
def check_scripts() -> Dict[str, List[Tuple[bool, str]]]:
|
||||||
"""Run all checks for each script."""
|
"""Run all checks for each script."""
|
||||||
checks = {
|
checks = {
|
||||||
"av1": [
|
|
||||||
check_command("ffmpeg"),
|
|
||||||
],
|
|
||||||
"e-ink": [
|
"e-ink": [
|
||||||
check_command("python3"),
|
check_command("python3"),
|
||||||
|
check_python_lib("PIL"),
|
||||||
],
|
],
|
||||||
"indeel": [
|
"indeel": [
|
||||||
check_command("file"),
|
check_command("file"),
|
||||||
@@ -76,25 +83,48 @@ def check_scripts() -> Dict[str, List[Tuple[bool, str]]]:
|
|||||||
check_env_var("PUSHOVER_APP_TOKEN"),
|
check_env_var("PUSHOVER_APP_TOKEN"),
|
||||||
check_env_var("PUSHOVER_USER_TOKEN"),
|
check_env_var("PUSHOVER_USER_TOKEN"),
|
||||||
check_command("curl"),
|
check_command("curl"),
|
||||||
|
check_python_lib("requests"),
|
||||||
],
|
],
|
||||||
"stats": [
|
"stats": [
|
||||||
|
check_command("python3"),
|
||||||
|
check_command("sensors"),
|
||||||
|
check_command("jq"),
|
||||||
|
check_command("top"),
|
||||||
|
check_command("free"),
|
||||||
|
check_command("df"),
|
||||||
|
check_python_lib("configparser"),
|
||||||
|
check_python_lib("http.server"),
|
||||||
*check_stats_commands(),
|
*check_stats_commands(),
|
||||||
],
|
],
|
||||||
"stats-collector": [
|
"stats-collector": [
|
||||||
check_command("python3"),
|
check_command("python3"),
|
||||||
|
check_python_lib("sqlalchemy"),
|
||||||
|
check_python_lib("requests"),
|
||||||
*check_stats_collector_config(),
|
*check_stats_collector_config(),
|
||||||
],
|
],
|
||||||
"syncwall": [
|
"syncwall": [
|
||||||
check_command("wget"),
|
check_command("wget"),
|
||||||
check_command("wal"),
|
check_command("wal"),
|
||||||
],
|
],
|
||||||
|
"tclean": [
|
||||||
|
check_command("python3"),
|
||||||
|
check_command("transmission-remote"),
|
||||||
|
check_python_lib("argparse"),
|
||||||
|
check_python_lib("datetime"),
|
||||||
|
],
|
||||||
"vc": [
|
"vc": [
|
||||||
check_command("ffmpeg"),
|
check_command("ffmpeg"),
|
||||||
check_command("yt-dlp"),
|
check_command("yt-dlp"),
|
||||||
|
check_python_lib("argparse"),
|
||||||
],
|
],
|
||||||
"vcmp": [
|
"vcmp": [
|
||||||
check_command("ffmpeg"),
|
check_command("ffmpeg"),
|
||||||
check_command("ffprobe"),
|
check_command("ffprobe"),
|
||||||
|
check_command("nice"),
|
||||||
|
check_python_lib("pathlib"),
|
||||||
|
check_python_lib("argparse"),
|
||||||
|
check_python_lib("logging"),
|
||||||
|
check_python_lib("tempfile"),
|
||||||
],
|
],
|
||||||
}
|
}
|
||||||
return checks
|
return checks
|
||||||
|
|||||||
Reference in New Issue
Block a user