101 lines
2.6 KiB
Bash
101 lines
2.6 KiB
Bash
|
|
#!/usr/bin/env bash
|
||
|
|
# Dependency management and updates
|
||
|
|
# Usage: ./dependency-management.sh [check|update|audit]
|
||
|
|
|
||
|
|
set -euo pipefail
|
||
|
|
|
||
|
|
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
||
|
|
SOURCE_PROJECT="/home/intlc/projects/smom-dbis-138"
|
||
|
|
|
||
|
|
ACTION="${1:-check}"
|
||
|
|
|
||
|
|
# Check dependencies
|
||
|
|
check_dependencies() {
|
||
|
|
echo "=== Dependency Check ==="
|
||
|
|
echo ""
|
||
|
|
|
||
|
|
# Check Foundry
|
||
|
|
if command -v forge >/dev/null 2>&1; then
|
||
|
|
FORGE_VERSION=$(forge --version 2>/dev/null | head -1 || echo "Unknown")
|
||
|
|
echo "✅ Foundry: $FORGE_VERSION"
|
||
|
|
else
|
||
|
|
echo "❌ Foundry: Not installed"
|
||
|
|
fi
|
||
|
|
|
||
|
|
# Check cast
|
||
|
|
if command -v cast >/dev/null 2>&1; then
|
||
|
|
CAST_VERSION=$(cast --version 2>/dev/null | head -1 || echo "Unknown")
|
||
|
|
echo "✅ Cast: $CAST_VERSION"
|
||
|
|
else
|
||
|
|
echo "❌ Cast: Not installed"
|
||
|
|
fi
|
||
|
|
|
||
|
|
# Check bc
|
||
|
|
if command -v bc >/dev/null 2>&1; then
|
||
|
|
echo "✅ bc: Installed"
|
||
|
|
else
|
||
|
|
echo "❌ bc: Not installed"
|
||
|
|
fi
|
||
|
|
|
||
|
|
# Check jq
|
||
|
|
if command -v jq >/dev/null 2>&1; then
|
||
|
|
JQ_VERSION=$(jq --version 2>/dev/null || echo "Unknown")
|
||
|
|
echo "✅ jq: $JQ_VERSION"
|
||
|
|
else
|
||
|
|
echo "⚠️ jq: Not installed (optional)"
|
||
|
|
fi
|
||
|
|
|
||
|
|
# Check curl
|
||
|
|
if command -v curl >/dev/null 2>&1; then
|
||
|
|
CURL_VERSION=$(curl --version 2>/dev/null | head -1 || echo "Unknown")
|
||
|
|
echo "✅ curl: $CURL_VERSION"
|
||
|
|
else
|
||
|
|
echo "❌ curl: Not installed"
|
||
|
|
fi
|
||
|
|
echo ""
|
||
|
|
}
|
||
|
|
|
||
|
|
# Update dependencies
|
||
|
|
update_dependencies() {
|
||
|
|
echo "=== Updating Dependencies ==="
|
||
|
|
echo ""
|
||
|
|
|
||
|
|
# Update Foundry
|
||
|
|
if command -v forge >/dev/null 2>&1; then
|
||
|
|
echo "Updating Foundry..."
|
||
|
|
foundryup 2>/dev/null || echo "⚠️ foundryup not available"
|
||
|
|
fi
|
||
|
|
|
||
|
|
# Update system packages
|
||
|
|
echo "Updating system packages..."
|
||
|
|
sudo apt update && sudo apt upgrade -y 2>/dev/null || echo "⚠️ Requires sudo"
|
||
|
|
echo ""
|
||
|
|
}
|
||
|
|
|
||
|
|
# Security audit
|
||
|
|
audit_dependencies() {
|
||
|
|
echo "=== Dependency Security Audit ==="
|
||
|
|
echo ""
|
||
|
|
echo "1. ✅ Check for known vulnerabilities"
|
||
|
|
echo "2. ✅ Review dependency versions"
|
||
|
|
echo "3. ✅ Pin dependency versions for stability"
|
||
|
|
echo "4. ✅ Regular security audits"
|
||
|
|
echo ""
|
||
|
|
echo "Recommendations:"
|
||
|
|
echo "- Pin Foundry version in foundry.toml"
|
||
|
|
echo "- Regular security updates"
|
||
|
|
echo "- Monitor for security advisories"
|
||
|
|
echo ""
|
||
|
|
}
|
||
|
|
|
||
|
|
case "$ACTION" in
|
||
|
|
check) check_dependencies ;;
|
||
|
|
update) update_dependencies ;;
|
||
|
|
audit) audit_dependencies ;;
|
||
|
|
*)
|
||
|
|
echo "Usage: $0 [check|update|audit]"
|
||
|
|
exit 1
|
||
|
|
;;
|
||
|
|
esac
|
||
|
|
|