mirror of
https://github.com/varun-r-mallya/py-libp2p.git
synced 2025-12-31 20:36:24 +00:00
75 lines
1.9 KiB
Bash
Executable File
75 lines
1.9 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
# tests/interop/nim_libp2p/scripts/setup_nim_echo.sh
|
|
# Cache-aware setup that skips installation if packages exist
|
|
|
|
set -euo pipefail
|
|
|
|
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
PROJECT_DIR="${SCRIPT_DIR}/.."
|
|
|
|
# Colors
|
|
GREEN='\033[0;32m'
|
|
RED='\033[0;31m'
|
|
YELLOW='\033[1;33m'
|
|
NC='\033[0m'
|
|
|
|
log_info() { echo -e "${GREEN}[INFO]${NC} $1"; }
|
|
log_warn() { echo -e "${YELLOW}[WARN]${NC} $1"; }
|
|
log_error() { echo -e "${RED}[ERROR]${NC} $1"; }
|
|
|
|
main() {
|
|
log_info "Setting up nim echo server for interop testing..."
|
|
|
|
# Check if nim is available
|
|
if ! command -v nim &> /dev/null || ! command -v nimble &> /dev/null; then
|
|
log_error "Nim not found. Please install nim first."
|
|
exit 1
|
|
fi
|
|
|
|
cd "${PROJECT_DIR}"
|
|
|
|
# Create logs directory
|
|
mkdir -p logs
|
|
|
|
# Check if binary already exists
|
|
if [[ -f "nim_echo_server" ]]; then
|
|
log_info "nim_echo_server already exists, skipping build"
|
|
return 0
|
|
fi
|
|
|
|
# Check if libp2p is already installed (cache-aware)
|
|
if nimble list -i | grep -q "libp2p"; then
|
|
log_info "libp2p already installed, skipping installation"
|
|
else
|
|
log_info "Installing nim-libp2p globally..."
|
|
nimble install -y libp2p
|
|
fi
|
|
|
|
log_info "Building nim echo server..."
|
|
# Compile the echo server
|
|
nim c \
|
|
-d:release \
|
|
-d:chronicles_log_level=INFO \
|
|
-d:libp2p_quic_support \
|
|
-d:chronos_event_loop=iocp \
|
|
-d:ssl \
|
|
--opt:speed \
|
|
--mm:orc \
|
|
--verbosity:1 \
|
|
-o:nim_echo_server \
|
|
nim_echo_server.nim
|
|
|
|
# Verify binary was created
|
|
if [[ -f "nim_echo_server" ]]; then
|
|
log_info "✅ nim_echo_server built successfully"
|
|
log_info "Binary size: $(ls -lh nim_echo_server | awk '{print $5}')"
|
|
else
|
|
log_error "❌ Failed to build nim_echo_server"
|
|
exit 1
|
|
fi
|
|
|
|
log_info "🎉 Setup complete!"
|
|
}
|
|
|
|
main "$@"
|