"""Command-line interface for OllamaTools."""
import argparse
import sys
from typing import List, Optional
def parse_args(args: Optional[List[str]] = None) -> argparse.Namespace:
"""Parse command-line arguments."""
parser = argparse.ArgumentParser(description="OllamaTools - A toolkit for working with Ollama")
# Add subparsers for different commands
subparsers = parser.add_subparsers(dest="command", help="Command to execute")
# Chat command
chat_parser = subparsers.add_parser("chat", help="Start a chat session")
chat_parser.add_argument("--model", "-m", default="llama2", help="Model to use for chat")
chat_parser.add_argument("--config", "-c", help="Path to configuration file")
# Run command
run_parser = subparsers.add_parser("run", help="Run a script or command")
run_parser.add_argument("script", help="Script or command to run")
run_parser.add_argument("--model", "-m", default="llama2", help="Model to use for execution")
# Version command
subparsers.add_parser("version", help="Show version information")
return parser.parse_args(args)
def main(args: Optional[List[str]] = None) -> int:
"""Main entry point for the CLI."""
parsed_args = parse_args(args)
if parsed_args.command == "chat":
# Start chat session
print(f"Starting chat session with model {parsed_args.model}")
# Implementation
return 0
elif parsed_args.command == "run":
# Run script or command
print(f"Running {parsed_args.script} with model {parsed_args.model}")
# Implementation
return 0
elif parsed_args.command == "version":
# Show version information
from ollamatools.version import __version__
print(f"OllamaTools version {__version__}")
return 0
else:
# No command specified, show help
parse_args(["--help"])
return 1
if __name__ == "__main__":
sys.exit(main())