2025-03-01 12:54:15 -06:00

39 lines
1.4 KiB
Python

#!/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))