#!/bin/bash

# Define variables
TWILIO_CLI_URL="https://github.com/twilio/twilio-cli/releases/latest/download/twilio-cli-linux-x64.tar.gz"
DOWNLOAD_DIR="/tmp"
BINARY_NAME="twilio"
TARGET_DIR="/usr/local/bin"
ARCHIVE_NAME="twilio-cli-linux-x64.tar.gz"

# Step 1: Download the Twilio CLI tarball
echo "Downloading Twilio CLI..."
curl -L $TWILIO_CLI_URL -o $DOWNLOAD_DIR/$ARCHIVE_NAME

# Step 2: Verify the downloaded file
echo "Verifying downloaded file..."
FILE_TYPE=$(file $DOWNLOAD_DIR/$ARCHIVE_NAME)
if [[ ! $FILE_TYPE == *"gzip compressed data"* ]]; then
  echo "Error: Downloaded file is not a valid .tar.gz archive."
  exit 1
fi

# Step 3: Extract the archive
echo "Extracting Twilio CLI..."
tar -xvzf $DOWNLOAD_DIR/$ARCHIVE_NAME -C $DOWNLOAD_DIR

# Step 4: Move the binary to the target directory
echo "Installing Twilio CLI..."
sudo mv $DOWNLOAD_DIR/$BINARY_NAME $TARGET_DIR

# Step 5: Verify installation
echo "Verifying installation..."
if command -v $BINARY_NAME &> /dev/null; then
  echo "Twilio CLI installed successfully!"
  $BINARY_NAME --version
else
  echo "Error: Twilio CLI installation failed."
  exit 1
fi

# Step 6: Cleanup
echo "Cleaning up..."
rm -f $DOWNLOAD_DIR/$ARCHIVE_NAME

echo "Fix script completed!"
