InitMate/extensions/certbot.sh

67 lines
1.8 KiB
Bash
Raw Permalink Normal View History

2024-05-24 09:06:01 -06:00
#!/bin/bash
LOG_FILE="$(dirname "$(dirname "$0")")/setup.log"
# Log function
log() {
echo "$1" | tee -a "$LOG_FILE"
}
# Function to prompt for yes/no input
prompt_yes_no() {
while true; do
read -r -p "$1 (y/n): " REPLY
case "$REPLY" in
[Yy]* ) return 0 ;;
[Nn]* ) return 1 ;;
* ) log "Please answer yes or no." ;;
esac
done
}
# Function to install Certbot
install_certbot() {
log "Installing Certbot..."
if command -v apt &>/dev/null; then
apt update
apt install -y certbot
elif command -v yum &>/dev/null; then
yum install -y epel-release
yum install -y certbot
else
log "Unsupported package manager. Please install Certbot manually."
exit 1
fi
log "Certbot installed successfully."
}
# Function to install Certbot plugins
install_certbot_plugins() {
log "Available Certbot plugins: nginx, apache, standalone, manual, dns-cloudflare, dns-google, etc."
log "Please enter the plugins you want to install (comma-separated, e.g., nginx, dns-cloudflare):"
read -r PLUGINS
IFS=',' read -r -a PLUGIN_ARRAY <<< "$PLUGINS"
for PLUGIN in "${PLUGIN_ARRAY[@]}"; do
PLUGIN=$(echo "$PLUGIN" | xargs) # Trim whitespace
if command -v apt &>/dev/null; then
apt install -y "python3-certbot-$PLUGIN"
elif command -v yum &>/dev/null; then
yum install -y "python3-certbot-$PLUGIN"
fi
log "Certbot plugin $PLUGIN installed successfully."
done
}
# Main script execution
log "Starting Certbot setup..."
if prompt_yes_no "Do you want to install Certbot?"; then
install_certbot
if prompt_yes_no "Do you want to install any Certbot plugins?"; then
install_certbot_plugins
fi
fi
log "Certbot setup complete."