#!/usr/bin/env python3 import os import sys from dotenv import load_dotenv import argparse import asyncio from utils.test_credentials import test_api_credentials from utils.droplets import create_droplet, delete_droplet if __name__ == "__main__": # Load environment variables from the .env file. load_dotenv() token = os.getenv("DO_API_TOKEN") if not token: print("Error: DO_API_TOKEN environment variable not found. Please set it in the .env file.", file=sys.stderr) sys.exit(1) # Set up command-line argument parsing. parser = argparse.ArgumentParser(description="DigitalOcean API Utility") subparsers = parser.add_subparsers(dest="command", required=True) subparsers.add_parser("test-credentials", help="Test DigitalOcean API credentials") create_parser = subparsers.add_parser("create", help="Create a droplet") create_parser.add_argument("droplet_type", help="Type of droplet to create (e.g., amd64-deb)") delete_parser = subparsers.add_parser("delete", help="Delete a droplet") delete_parser.add_argument("droplet_type", help="Type of droplet to delete (e.g., amd64-deb)") args = parser.parse_args() if args.command == "test-credentials": asyncio.run(test_api_credentials(token)) elif args.command == "create": asyncio.run(create_droplet(token, args.droplet_type)) elif args.command == "delete": asyncio.run(delete_droplet(token, args.droplet_type))