add new installer for alpha
This commit is contained in:
124
installer/alpha/scripts/helpers.sh
Executable file
124
installer/alpha/scripts/helpers.sh
Executable file
@@ -0,0 +1,124 @@
|
||||
#!/bin/bash
|
||||
#
|
||||
# Helper functions for Calypso installer
|
||||
#
|
||||
|
||||
# Check prerequisites
|
||||
check_prerequisites() {
|
||||
log_info "Checking prerequisites..."
|
||||
|
||||
# Check network connectivity
|
||||
if ! ping -c 1 -W 2 8.8.8.8 &>/dev/null; then
|
||||
log_warn "Network connectivity check failed. Some installations may fail."
|
||||
else
|
||||
log_info "✓ Network connectivity OK"
|
||||
fi
|
||||
|
||||
# Check disk space (need at least 10GB free)
|
||||
AVAILABLE_SPACE=$(df -BG / | awk 'NR==2 {print $4}' | sed 's/G//')
|
||||
if [[ $AVAILABLE_SPACE -lt 10 ]]; then
|
||||
log_error "Insufficient disk space. Need at least 10GB, have ${AVAILABLE_SPACE}GB"
|
||||
exit 1
|
||||
else
|
||||
log_info "✓ Disk space OK (${AVAILABLE_SPACE}GB available)"
|
||||
fi
|
||||
|
||||
# Check if already installed
|
||||
if [[ -d "$INSTALL_PREFIX/current" ]]; then
|
||||
log_warn "Calypso appears to be already installed at $INSTALL_PREFIX"
|
||||
read -p "Continue anyway? (y/N) " -n 1 -r
|
||||
echo
|
||||
if [[ ! $REPLY =~ ^[Yy]$ ]]; then
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
|
||||
log_info "✓ Prerequisites check complete"
|
||||
}
|
||||
|
||||
# Generate random string
|
||||
generate_random_string() {
|
||||
local length=${1:-32}
|
||||
openssl rand -hex $((length / 2)) | head -c $length
|
||||
}
|
||||
|
||||
# Generate JWT secret
|
||||
generate_jwt_secret() {
|
||||
generate_random_string 64
|
||||
}
|
||||
|
||||
# Generate database password
|
||||
generate_db_password() {
|
||||
generate_random_string 32
|
||||
}
|
||||
|
||||
# Wait for service
|
||||
wait_for_service() {
|
||||
local service=$1
|
||||
local max_wait=${2:-30}
|
||||
local count=0
|
||||
|
||||
while ! systemctl is-active --quiet "$service" && [[ $count -lt $max_wait ]]; do
|
||||
sleep 1
|
||||
((count++))
|
||||
done
|
||||
|
||||
if systemctl is-active --quiet "$service"; then
|
||||
return 0
|
||||
else
|
||||
return 1
|
||||
fi
|
||||
}
|
||||
|
||||
# Check command exists
|
||||
command_exists() {
|
||||
command -v "$1" &> /dev/null
|
||||
}
|
||||
|
||||
# Get installed version
|
||||
get_installed_version() {
|
||||
local command=$1
|
||||
if command_exists "$command"; then
|
||||
case $command in
|
||||
go)
|
||||
go version | awk '{print $3}' | sed 's/go//'
|
||||
;;
|
||||
node)
|
||||
node --version | sed 's/v//'
|
||||
;;
|
||||
psql)
|
||||
psql --version | awk '{print $3}'
|
||||
;;
|
||||
*)
|
||||
"$command" --version 2>/dev/null | head -1
|
||||
;;
|
||||
esac
|
||||
fi
|
||||
}
|
||||
|
||||
# Print installation summary
|
||||
print_installation_summary() {
|
||||
log_info ""
|
||||
log_info "=========================================="
|
||||
log_info "Installation Summary"
|
||||
log_info "=========================================="
|
||||
log_info ""
|
||||
log_info "Installation Paths:"
|
||||
log_info " Binaries: $INSTALL_PREFIX/releases/$CALYPSO_VERSION"
|
||||
log_info " Configuration: $CONFIG_DIR"
|
||||
log_info " Data: $DATA_DIR"
|
||||
log_info " Logs: $LOG_DIR"
|
||||
log_info ""
|
||||
log_info "Services:"
|
||||
log_info " calypso-api: $(systemctl is-enabled calypso-api 2>/dev/null || echo 'not enabled')"
|
||||
log_info ""
|
||||
log_info "Default Credentials:"
|
||||
log_info " Username: admin"
|
||||
log_info " Password: $(cat /tmp/calypso_admin_password 2>/dev/null || echo 'Check installation log')"
|
||||
log_info ""
|
||||
log_info "Access:"
|
||||
log_info " Web UI: http://$(hostname -I | awk '{print $1}'):3000"
|
||||
log_info " API: http://$(hostname -I | awk '{print $1}'):8080"
|
||||
log_info ""
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user