Skip to content

Commit 036774c

Browse files
committed
update sync script
1 parent 7eb0803 commit 036774c

1 file changed

Lines changed: 91 additions & 33 deletions

File tree

misc/sync_source.sh

Lines changed: 91 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -1,36 +1,94 @@
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
1934
fi
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+
2388
wait
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

Comments
 (0)