? ? ? 在使用repo sync下載代碼的時候,經常由于網絡不穩定等因素導致下載失敗,采用循環不斷下載的方法,腳步如下:
vim ~/bin/repo_sync
#!/bin/bash
trap 'echo "ctrl+c force exit"; exit' SIGINT
ALL_PKG=`grep project .repo/manifest.xml | awk '{print $3}' | cut -d'"' -f2`
ERR_PKG=""
T_PKG=$ALL_PKG
echo "repo package list:\n $T_PKG"
rm -rf ./success.pkg
while [ 1 ]
do
? ? for i in $T_PKG
? ? do
? ? ? ? echo "check package:$i"
? ? ? ? grep "$i" ./success.pkg >/dev/null 2>&1
? ? ? ? if [ $? -eq 0 ]; then
? ? ? ? ? ? continue
? ? ? ? fi
? ? ? ? repo sync $i
? ? ? ? if [ $? -ne 0 ]; then
? ? ? ? ? ? echo "SYNC Error package:$i"
? ? ? ? ? ? ERR_PKG="$ERR_PKG $i"
? ? ? ? ? ? continue
? ? ? ? else
? ? ? ? ? ? grep "$i" ./success.pkg >/dev/null 2>&1
? ? ? ? ? ? if [ $? -ne 0 ]; then
? ? ? ? ? ? ? ? echo "$i" >> ./success.pkg
? ? ? ? ? ? fi
? ? ? ? ? ? echo "SYNC Success package:$i"
? ? ? ? fi
? ? done
? ? if [ "$ERR_PKG" = "" ]; then
? ? ? ? echo "SYNC ALL"
? ? ? ? rm -rf ./success.pkg
? ? ? ? exit 0
? ? else
? ? ? ? T_PKG=$ERR_PKG
? ? ? ? ERR_PKG=""
? ? fi
? ? echo "repo resync loop package list:\n $T_PKG"
done
?
chmod +x?~/bin/repo_sync;
在repo 工程下執行?~/bin/repo_sync;
如果想在異常的時候退出,按Ctrl+c 退出即可。