1 Star 0 Fork 0

正版水民/tunasync-scripts

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
cros.sh 2.19 KB
一键复制 编辑 原始数据 按行查看 历史
z4yx 提交于 2020-05-15 12:35 . [cros] update remote url
#!/bin/bash
set -e
USE_BITMAP_INDEX=${USE_BITMAP_INDEX:-"0"}
CONCURRENT_JOBS=${CONCURRENT_JOBS:-"1"}
MANIFEST_URL=$TUNASYNC_UPSTREAM_URL/chromiumos/manifest.git
MANIFEST_DIR=$TUNASYNC_WORKING_DIR/.manifest
MANIFEST_XML_REPOLIST=$(dirname $0)/helpers/manifest-xml-repolist.py
IGNORED_REPO=(
)
export GIT_TERMINAL_PROMPT=0
function contains() {
for e in "${@:2}"; do [[ "$e" == "$1" ]] && return 0; done
return 1
}
function git_clone_or_pull {
URL=$1
DIRECTORY=$2
BARE=$3
name=$(basename $2)
if [[ -z $BARE ]]; then
if [[ -d $DIRECTORY ]]; then
git -C "$DIRECTORY" remote set-url origin "$URL"
git -C "$DIRECTORY" pull
else
git clone "$URL" "$DIRECTORY"
fi
else
if [[ -d "$DIRECTORY" ]]; then
git -C "$DIRECTORY" remote set-url origin "$URL"
git -C "$DIRECTORY" fetch --force --prune 2>&1 | sed "s/^/$name: /"
else
git clone --bare "$URL" "$DIRECTORY"
fi
fi
}
function git_repack() {
echo "Start writing bitmap index"
while read repo; do
cd $repo
size=$(du -sk .|cut -f1)
total_size=$(($total_size+1024*$size))
objs=$(find objects -type f | wc -l)
if [[ "$objs" -gt 8 && "$size" -gt "100000" ]]; then
git repack -a -b -d
fi
done < <(find $TUNASYNC_WORKING_DIR -not -path "$MANIFEST_DIR/.git/*" -type f -name HEAD -exec dirname '{}' ';')
}
git_clone_or_pull $MANIFEST_URL $MANIFEST_DIR
for repo in $($MANIFEST_XML_REPOLIST $MANIFEST_DIR/default.xml cros chromium); do
contains $repo ${IGNORED_REPO[@]} && continue
echo $TUNASYNC_UPSTREAM_URL/$repo
if [[ -z ${DRY_RUN:-} ]]; then
while true
do
running=$(jobs -r | wc -l)
if [ "$running" -lt "$CONCURRENT_JOBS" ]
then
echo "start cloning $repo"
git_clone_or_pull $TUNASYNC_UPSTREAM_URL/$repo $TUNASYNC_WORKING_DIR/$repo yes &
break
else
wait -n
fi
done
fi
done
wait # wait for all background jobs
total_size=0
if [[ -z ${DRY_RUN:-} && "$USE_BITMAP_INDEX" == "1" ]]; then
git_repack
echo "Total size is" $(numfmt --to=iec $total_size)
fi
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/wyk0930/tunasync-scripts.git
[email protected]:wyk0930/tunasync-scripts.git
wyk0930
tunasync-scripts
tunasync-scripts
master

搜索帮助