- Introduced Aggregator.sol for Chainlink-compatible oracle functionality, including round-based updates and access control. - Added OracleWithCCIP.sol to extend Aggregator with CCIP cross-chain messaging capabilities. - Created .gitmodules to include OpenZeppelin contracts as a submodule. - Developed a comprehensive deployment guide in NEXT_STEPS_COMPLETE_GUIDE.md for Phase 2 and smart contract deployment. - Implemented Vite configuration for the orchestration portal, supporting both Vue and React frameworks. - Added server-side logic for the Multi-Cloud Orchestration Portal, including API endpoints for environment management and monitoring. - Created scripts for resource import and usage validation across non-US regions. - Added tests for CCIP error handling and integration to ensure robust functionality. - Included various new files and directories for the orchestration portal and deployment scripts.
102 lines
2.6 KiB
Bash
Executable File
102 lines
2.6 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
# Adopt common library in top-N legacy scripts (no lib sourcing yet)
|
|
# Safe: inserts only a single line after first SCRIPT_DIR=...BASH_SOURCE occurrence.
|
|
# Verifies syntax, reverts on failure. Writes report to docs/SCRIPTS_ADOPTION_PLAN.md
|
|
|
|
set -euo pipefail
|
|
|
|
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
source "/home/intlc/projects/smom-dbis-138/scripts/lib/init.sh"
|
|
ROOT_DIR="$(cd "$SCRIPT_DIR/../.." && pwd)"
|
|
REPORT="$ROOT_DIR/docs/SCRIPTS_ADOPTION_PLAN.md"
|
|
LIMIT=30
|
|
APPLY=1
|
|
|
|
while [[ $# -gt 0 ]]; do
|
|
case "$1" in
|
|
--limit) LIMIT="$2"; shift 2;;
|
|
--dry-run) APPLY=0; shift;;
|
|
*) echo "Unknown arg: $1"; exit 1;;
|
|
esac
|
|
done
|
|
|
|
mkdir -p "$ROOT_DIR/docs"
|
|
|
|
tmp_list=$(mktemp)
|
|
{
|
|
cd "$ROOT_DIR"
|
|
while IFS= read -r -d '' f; do
|
|
# skip if already sourcing lib
|
|
if grep -q 'source "\$SCRIPT_DIR/\../lib/init\.sh"' "$f" 2>/dev/null; then
|
|
continue
|
|
fi
|
|
# require a SCRIPT_DIR with BASH_SOURCE
|
|
if grep -q 'BASH_SOURCE\[0\]' "$f" && grep -q '^SCRIPT_DIR=' "$f"; then
|
|
printf "%s\t%s\n" "$(wc -l < "$f")" "$f"
|
|
fi
|
|
done < <(find scripts -type f -name '*.sh' ! -path '*/lib/*' -print0)
|
|
} | sort -rn | head -n "$LIMIT" | cut -f2- > "$tmp_list"
|
|
mapfile -t CANDIDATES < "$tmp_list"
|
|
rm -f "$tmp_list"
|
|
|
|
changed=()
|
|
skipped=()
|
|
|
|
{
|
|
echo "# Scripts Adoption Plan"
|
|
echo
|
|
echo "Generated: $(date -Iseconds)"
|
|
echo
|
|
echo "Targeting top $LIMIT legacy scripts (no lib sourcing) to insert: \`source \"$SCRIPT_DIR/../lib/init.sh\"\` after the first \`SCRIPT_DIR=...BASH_SOURCE\` line."
|
|
echo
|
|
for f in "${CANDIDATES[@]}"; do
|
|
rel="${f#$ROOT_DIR/}"
|
|
echo "- [ ] $rel"
|
|
done
|
|
} > "$REPORT"
|
|
|
|
for f in "${CANDIDATES[@]}"; do
|
|
[ -e "$f" ] || continue
|
|
if [ "$APPLY" = "0" ]; then continue; fi
|
|
# backup
|
|
tmp="$(mktemp)"; cp "$f" "$tmp"
|
|
# inject after first SCRIPT_DIR line
|
|
awk -v root="$ROOT_DIR" 'BEGIN{ins=0} {
|
|
print
|
|
if (ins==0 && $0 ~ /^SCRIPT_DIR=/ && $0 ~ /BASH_SOURCE\[0\]/) {
|
|
print "source \"" root "/scripts/lib/init.sh\""
|
|
ins=1
|
|
}
|
|
}' "$f" > "$f.__new__"
|
|
mv "$f.__new__" "$f"
|
|
if ! bash -n "$f"; then
|
|
# revert
|
|
cp "$tmp" "$f"
|
|
rm -f "$tmp"
|
|
skipped+=("$f (syntax failed)")
|
|
continue
|
|
fi
|
|
rm -f "$tmp"
|
|
changed+=("$f")
|
|
|
|
done
|
|
|
|
# Append results
|
|
{
|
|
echo
|
|
echo "## Results"
|
|
echo
|
|
if [ ${#changed[@]} -gt 0 ]; then
|
|
echo "### Adopted (inserted lib/init):"
|
|
for c in "${changed[@]}"; do echo "- [x] ${c#$ROOT_DIR/}"; done
|
|
else
|
|
echo "No files changed."
|
|
fi
|
|
if [ ${#skipped[@]} -gt 0 ]; then
|
|
echo "\n### Skipped (manual review needed):"
|
|
for s in "${skipped[@]}"; do echo "- $s"; done
|
|
fi
|
|
} >> "$REPORT"
|
|
|
|
echo "Adoption pass complete. Report: $REPORT"
|