11#! /bin/bash
2- CURRENT_FOLDER=$( dirname $( readlink -f " $0 " ) )
3- cd $CURRENT_FOLDER /..
4- if [[ " $# " = 2 && " $1 " = " release" ]]; then
5- echo " Sync for release..."
6- SOURCE_CONFIG=" schedule-release"
7- FILE_APPENDIX=" "
8- PKG_SFTP_TARGET=" $2 /covscript/"
9- CSPKG_SFTP_TARGET=" $2 /cspkg/"
10- elif [[ " $# " = 1 ]]; then
11- echo " Sync for nightly..."
12- SOURCE_CONFIG=" schedule"
13- FILE_APPENDIX=" -nightly"
14- PKG_SFTP_TARGET=" $1 /covscript/"
15- CSPKG_SFTP_TARGET=" $1 /cspkg_nightly/"
16- else
17- echo " Usage: sync_source.sh [release] TARGET_PATH"
18- exit
2+
3+ set -e
4+ set -o pipefail
5+
6+ CURRENT_FOLDER=$( dirname " $( readlink -f " $0 " ) " )
7+ cd " $CURRENT_FOLDER /.."
8+
9+ CLEANUP=false
10+ TARGET_PATH=" "
11+ MODES=()
12+
13+ for arg in " $@ " ; do
14+ case " $arg " in
15+ release|nightly|all)
16+ if [ " $arg " = " all" ]; then
17+ MODES=(" release" " nightly" )
18+ else
19+ MODES=(" $arg " )
20+ fi
21+ ;;
22+ --rm)
23+ CLEANUP=true
24+ ;;
25+ * )
26+ TARGET_PATH=" $arg "
27+ ;;
28+ esac
29+ done
30+
31+ if [ " ${# MODES[@]} " -eq 0 ] || [ -z " $TARGET_PATH " ]; then
32+ echo " Usage: $0 [release|nightly|all] TARGET_PATH [--rm]"
33+ exit 1
1934fi
20- wget -t 10 " https://github.com/covscript/csbuild/releases/download/windows-${SOURCE_CONFIG} /cspkg-winucrt-x86_64${FILE_APPENDIX} .7z" &
21- wget -t 10 " https://github.com/covscript/csbuild/releases/download/ubuntu-${SOURCE_CONFIG} /cspkg-linux-x86_64${FILE_APPENDIX} .7z" &
22- wget -t 10 " https://github.com/covscript/csbuild/releases/download/macos-${SOURCE_CONFIG} /cspkg-macos-arm64${FILE_APPENDIX} .7z" &
35+
36+ CSBUILD_DIR=" csbuild-repo"
37+ mkdir -p " $CSBUILD_DIR "
38+
39+ download_files () {
40+ local mode=$1
41+
42+ if [ " $mode " = " release" ]; then
43+ SOURCE_CONFIG=" schedule-release"
44+ FILE_APPENDIX=" "
45+ CSPKG_DIR=" $TARGET_PATH /cspkg_v2/"
46+ PKG_DIR=" $TARGET_PATH /covscript/"
47+ else
48+ SOURCE_CONFIG=" schedule"
49+ FILE_APPENDIX=" -nightly"
50+ CSPKG_DIR=" $TARGET_PATH /cspkg_v2_nightly/"
51+ PKG_DIR=" $TARGET_PATH /covscript/"
52+ fi
53+
54+ local CSPKG_URLS=(
55+ " https://github.com/covscript/csbuild/releases/download/windows-${SOURCE_CONFIG} /cspkg-winucrt-x86_64${FILE_APPENDIX} .7z"
56+ " https://github.com/covscript/csbuild/releases/download/ubuntu-${SOURCE_CONFIG} /cspkg-linux-x86_64${FILE_APPENDIX} .7z"
57+ " https://github.com/covscript/csbuild/releases/download/ubuntu-arm-${SOURCE_CONFIG} /cspkg-linux-aarch64${FILE_APPENDIX} .7z"
58+ " https://github.com/covscript/csbuild/releases/download/macos-${SOURCE_CONFIG} /cspkg-macos-arm64${FILE_APPENDIX} .7z"
59+ " https://github.com/covscript/csbuild/releases/download/windows-${SOURCE_CONFIG} /covscript-x64${FILE_APPENDIX} .msi"
60+ " https://github.com/covscript/csbuild/releases/download/ubuntu-${SOURCE_CONFIG} /covscript-x86_64${FILE_APPENDIX} .deb"
61+ " https://github.com/covscript/csbuild/releases/download/ubuntu-arm-${SOURCE_CONFIG} /covscript-aarch64${FILE_APPENDIX} .deb"
62+ " https://github.com/covscript/csbuild/releases/download/macos-${SOURCE_CONFIG} /covscript-arm64${FILE_APPENDIX} .dmg"
63+ )
64+
65+ for url in " ${CSPKG_URLS[@]} " ; do
66+ wget -c -t 10 --progress=bar:force:noscroll -P " $CSBUILD_DIR " " $url " &
67+ done
68+
69+ wait
70+
71+ rm -rf " $CSBUILD_DIR /$mode "
72+ mkdir -p " $CSBUILD_DIR /$mode "
73+
74+ for file in " $CSBUILD_DIR " /cspkg-* ${FILE_APPENDIX} .7z; do
75+ 7z x -aoa " $file " -o" $CSBUILD_DIR /$mode " &
76+ done
77+ wait
78+
79+ rsync -avzP " $CSBUILD_DIR /$mode /cspkg-repo/" " $CSPKG_DIR "
80+
81+ rsync -avzP " $CSBUILD_DIR /" covscript-* ${FILE_APPENDIX} .* " $PKG_DIR "
82+ }
83+
84+ for mode in " ${MODES[@]} " ; do
85+ download_files " $mode " &
86+ done
87+
2388wait
24- 7z x -aoa " cspkg-winucrt-x86_64${FILE_APPENDIX} .7z" &
25- 7z x -aoa " cspkg-linux-x86_64${FILE_APPENDIX} .7z" &
26- 7z x -aoa " cspkg-macos-arm64${FILE_APPENDIX} .7z" &
27- wait
28- rm " cspkg-winucrt-x86_64${FILE_APPENDIX} .7z" " cspkg-linux-x86_64${FILE_APPENDIX} .7z" " cspkg-macos-arm64${FILE_APPENDIX} .7z"
29- rsync -avzP ./cspkg-repo/* $CSPKG_SFTP_TARGET
30- rm -rf ./cspkg-repo
31- wget -t 10 -P covscript-repo https://github.com/covscript/csbuild/releases/download/windows-${SOURCE_CONFIG} /covscript-x64${FILE_APPENDIX} .msi &
32- wget -t 10 -P covscript-repo https://github.com/covscript/csbuild/releases/download/ubuntu-${SOURCE_CONFIG} /covscript-amd64${FILE_APPENDIX} .deb &
33- wget -t 10 -P covscript-repo https://github.com/covscript/csbuild/releases/download/macos-${SOURCE_CONFIG} /covscript-arm64${FILE_APPENDIX} .dmg &
34- wait
35- rsync -avzP ./covscript-repo/* $PKG_SFTP_TARGET
36- rm -rf ./covscript-repo
89+
90+ if [ " $CLEANUP " = true ]; then
91+ rm -rf " $CSBUILD_DIR "
92+ fi
93+
94+ echo " All done!"
0 commit comments