mirror of
https://github.com/cryptpad/cryptpad.git
synced 2026-09-14 11:05:41 +05:00
Only download OnlyOffice when update is needed
https://github.com/cryptpad/cryptpad/issues/1416
This commit is contained in:
parent
bb5d7aa326
commit
1bda1cf2fc
@ -10,7 +10,7 @@ main () {
|
||||
parse_arguments "$@"
|
||||
validate_arguments
|
||||
|
||||
prepare_builds
|
||||
mkdir -p "$OO_DIR"
|
||||
install_version v1 4f370beb
|
||||
install_version v2b d9da72fd
|
||||
install_version v4 6ebc6938
|
||||
@ -84,39 +84,52 @@ EOF
|
||||
exit 1
|
||||
}
|
||||
|
||||
prepare_builds () {
|
||||
ensure_commit_exists () {
|
||||
if [ -d "$BUILDS_DIR" ]; then
|
||||
local LAST_DIR
|
||||
LAST_DIR=$(pwd)
|
||||
cd "$BUILDS_DIR"
|
||||
git fetch
|
||||
cd -
|
||||
else
|
||||
git clone --bare git@github.com:cryptpad/onlyoffice-builds.git "$BUILDS_DIR" # TODO use https here, when repo is public
|
||||
if ! git cat-file -e "$1"; then
|
||||
git fetch
|
||||
fi
|
||||
cd "$LAST_DIR"
|
||||
return
|
||||
fi
|
||||
|
||||
mkdir -p "$OO_DIR"
|
||||
|
||||
git clone --bare git@github.com:cryptpad/onlyoffice-builds.git "$BUILDS_DIR" # TODO use https here, when repo is public
|
||||
}
|
||||
|
||||
install_version () {
|
||||
local DIR=$1
|
||||
local COMMIT=$2
|
||||
local FULL_DIR=$OO_DIR/$DIR
|
||||
local LAST_DIR
|
||||
LAST_DIR=$(pwd)
|
||||
|
||||
if [ ! -e "$FULL_DIR"/.git ]; then
|
||||
rm -rf "$FULL_DIR"
|
||||
fi
|
||||
|
||||
if [ -d "$FULL_DIR" ]; then
|
||||
cd "$FULL_DIR"
|
||||
git checkout "$COMMIT"
|
||||
cd -
|
||||
else
|
||||
cd "$BUILDS_DIR"
|
||||
git worktree add "$FULL_DIR" "$COMMIT"
|
||||
cd -
|
||||
if [ ! -e "$FULL_DIR"/.commit ]; then
|
||||
if [ "$(cat "$FULL_DIR"/.commit)" != "$COMMIT" ]; then
|
||||
ensure_commit_exists "$COMMIT"
|
||||
|
||||
if [ ! -e "$FULL_DIR"/.git ]; then
|
||||
rm -rf "$FULL_DIR"
|
||||
fi
|
||||
|
||||
if [ -d "$FULL_DIR" ]; then
|
||||
cd "$FULL_DIR"
|
||||
git checkout "$COMMIT"
|
||||
else
|
||||
cd "$BUILDS_DIR"
|
||||
git worktree add "$FULL_DIR" "$COMMIT"
|
||||
fi
|
||||
|
||||
cd "$LAST_DIR"
|
||||
|
||||
echo "$COMMIT" > "$FULL_DIR"/.commit
|
||||
fi
|
||||
fi
|
||||
|
||||
if [ ${CLEAR+x} ]; then
|
||||
rm "$FULL_DIR"/.git
|
||||
rm -f "$FULL_DIR"/.git
|
||||
fi
|
||||
}
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user