#!/bin/sh # This script will create a deep snapshot of all Observatory package # dependencies. The output will be in observatory_pub_packages which # then should be committed to third_party/observatory_pub_packages. PUBSPEC_INPUT="pubspec.template" PUBSPEC_OUTPUT="pubspec.yaml" PACKAGES_INPUT="packages" PACKAGES_OUTPUT="observatory_pub_packages" if [ ! -d "../maintainers" ]; then echo "Please run this script from the maintainers directory" exit fi if [ ! -f $PUBSPEC_INPUT ]; then echo "Cannot find $PUBSPEC_INPUT" exit fi # Cleanup leftovers rm -f $PUBSPEC_OUTPUT rm -rf $PACKAGES_INPUT rm -rf $PACKAGES_OUTPUT # Setup for pub get run cp $PUBSPEC_INPUT $PUBSPEC_OUTPUT # Run pub get pub get # Prepare for output mkdir $PACKAGES_OUTPUT OUTPUT_BASE=`realpath $PACKAGES_OUTPUT` # Copy necessary files pushd $PACKAGES_INPUT > /dev/null for i in *; do ACTUAL_PATH=`realpath $i` mkdir $OUTPUT_BASE/$i mkdir $OUTPUT_BASE/$i/lib cp $ACTUAL_PATH/../pubspec.yaml $OUTPUT_BASE/$i/pubspec.yaml rsync -Lr $ACTUAL_PATH/* $OUTPUT_BASE/$i/lib done popd > /dev/null echo '***' echo 'Dumping package dependencies:': echo '' echo 'dependency_overrides:' pushd $PACKAGES_OUTPUT > /dev/null for i in *; do echo -e " $i:\n path: ../../third_party/$PACKAGES_OUTPUT/$i" done popd > /dev/null echo '' echo '***' echo -n 'Now run: rsync -a --delete observatory_pub_packages/ ' echo '~/workspace/dart-third_party/observatory_pub_packages/' echo 'Then: ' echo 'cd ~/workspace/dart-third_party/observatory_pub_packages/' echo "svn status | grep ^? | sed 's/? //' | xargs svn add" echo "svn st | grep ^! | sed 's/! //' | xargs svn rm" echo '***'