#!/usr/bin/env python3 """CLI tool for managing configuration.""" import argparse import asyncio from config import Config async def main(): parser = argparse.ArgumentParser(description="Ollama Notification System Configuration") parser.add_argument("--set-ollama-endpoint", help="Set Ollama endpoint URL") parser.add_argument("--set-ollama-model", help="Set Ollama model name") parser.add_argument("--set-silent-time", nargs=2, metavar=("START", "END"), help="Set silent time range (e.g., 20:00 12:00)") parser.add_argument("--set-interval-range", nargs=2, type=int, metavar=("MIN", "MAX"), help="Set notification interval range in minutes") parser.add_argument("--set-bark-url", help="Set Bark API URL") parser.add_argument("--set-bark-key", help="Set Bark device key") parser.add_argument("--set-ntfy-url", help="Set Ntfy API URL") parser.add_argument("--set-ntfy-topic", help="Set Ntfy topic") parser.add_argument("--set-ntfy-token", help="Set Ntfy access token") parser.add_argument("--show", action="store_true", help="Show current configuration") args = parser.parse_args() config = Config() if args.set_ollama_endpoint: config.ollama_endpoint = args.set_ollama_endpoint if args.set_ollama_model: config.ollama_model = args.set_ollama_model if args.set_silent_time: config.silent_start = args.set_silent_time[0] config.silent_end = args.set_silent_time[1] if args.set_interval_range: config.min_interval = args.set_interval_range[0] config.max_interval = args.set_interval_range[1] if args.set_bark_url: config.bark_api_url = args.set_bark_url if args.set_bark_key: config.bark_device_key = args.set_bark_key if args.set_ntfy_url: config.ntfy_api_url = args.set_ntfy_url if args.set_ntfy_topic: config.ntfy_topic = args.set_ntfy_topic if args.set_ntfy_token: config.ntfy_access_token = args.set_ntfy_token if any([args.set_ollama_endpoint, args.set_ollama_model, args.set_silent_time, args.set_interval_range, args.set_bark_url, args.set_bark_key, args.set_ntfy_url, args.set_ntfy_topic, args.set_ntfy_token]): config.save() print("Configuration saved successfully!") if args.show or not any(vars(args).values()): print("Current Configuration:") print(f" Ollama Endpoint: {config.ollama_endpoint}") print(f" Ollama Model: {config.ollama_model}") print(f" Silent Time: {config.silent_start} - {config.silent_end}") print(f" Interval Range: {config.min_interval} - {config.max_interval} minutes") print(f" Bark API URL: {config.bark_api_url or 'Not set'}") print(f" Bark Device Key: {'***' if config.bark_device_key else 'Not set'}") print(f" Ntfy API URL: {config.ntfy_api_url or 'Not set'}") print(f" Ntfy Topic: {config.ntfy_topic or 'Not set'}") print(f" Ntfy Token: {'***' if config.ntfy_access_token else 'Not set'}") if __name__ == "__main__": asyncio.run(main())