#!/bin/sh # Move every crate in Cargo.lock that the OxygenFlow image does not vendor to # the newest version of it that the image does (spectra#2), then report what # `scripts/deps-check.sh` still finds. Run after adding a dependency. set -eu cd "$(dirname "$0")/.." dev=${DEV:-..} pkgs() { awk '/^\[\[package\]\]/{n="";v=""} /^name = /{n=$3} /^version = /{v=$3} /^source = /{print n" "v}' "$@" | tr -d '"' | sort -u; } have=$(pkgs "$dev/oxygen/Cargo.lock" "$dev/oxygenhub/Cargo.lock" "$dev/oxygenflow/Cargo.lock") for round in 1 2 3 4 5; do missing=$(pkgs Cargo.lock | grep -vxF "$have" || true) [ -z "$missing" ] && break printf '%s\n' "$missing" | while read -r name version; do target=$(printf '%s\n' "$have" | awk -v n="$name" '$1==n{print $2}' | sort -V | tail -1) [ -n "$target" ] && cargo update -q -p "$name@$version" --precise "$target" 2>/dev/null || true done done scripts/deps-check.sh