import os
import sys
from dotenv import load_dotenv
from loguru import logger
load_dotenv()
def setup_logging(log_file: str | None = None) -> None:
logger.remove()
logger.add(
sys.stderr,
level="INFO",
format="{time:HH:mm:ss} | {level:<8} | {message}",
)
if log_file:
log_dir = os.getenv("LOGDIR")
if log_dir:
logger.add(
os.path.join(log_dir, log_file),
rotation="7 days",
retention="30 days",
level="DEBUG",
format="{time:YYYY-MM-DD HH:mm:ss} | {level:<8} | {message}",
)
def main() -> None:
setup_logging("skiprate-cea.log")
try:
from .services.skiprate import run_update
run_update()
except KeyboardInterrupt:
logger.info("Interrupted by user")
sys.exit(130)
except SystemExit:
raise
except Exception as e:
logger.exception(f"Fatal error: {e}")
sys.exit(1)
if __name__ == "__main__":
main()