blob: 68803cf13068cb18a720a45b47ce2d5222939d9c [file] [log] [blame]
#!/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 '***'