#!/bin/sh if [ "$UPDATE_CODE_FROM_GIT" = "true" ]; then # Install necessary packages apk add git nano rsync echo "Updating code from git.d-popov.com...(as '$GIT_USERNAME')" # Create a temporary directory for the new clone rm -rf /tmp/clone mkdir /tmp/clone # Clone the repository git clone -b ${GIT_BRANCH:-main} --depth 1 https://$GIT_USERNAME:${GIT_PASSWORD//@/%40}@git.d-popov.com/popov/mwitnessing.git /tmp/clone || exit 1 # Synchronize all files except package.json and package-lock.json to /app rsync -av --delete --exclude 'package.json' --exclude 'package-lock.json' /tmp/clone/ /app/ || echo "Rsync failed: Issue synchronizing files" # Determine if package.json or package-lock.json has changed PACKAGE_CHANGE=0 if ! cmp -s /tmp/clone/package.json /app/package.json || ! cmp -s /tmp/clone/package-lock.json /app/package-lock.json; then PACKAGE_CHANGE=1 fi # If package.json or package-lock.json has changed, copy them and reinstall node_modules if [ "$PACKAGE_CHANGE" -eq 1 ]; then echo "Package files have changed. Updating packages..." rsync -av /tmp/clone/package.json /app/package.json || echo "Rsync failed: Issue copying package.json" rsync -av /tmp/clone/package-lock.json /app/package-lock.json || echo "Rsync failed: Issue copying package-lock.json" rm -rf /app/node_modules cd /app npm install --no-audit --no-fund --no-optional --omit=optional yes | npx prisma generate else echo "Package files have not changed. Skipping package installation." fi # Clean up rm -rf /tmp/clone echo "Update process completed." fi echo "Running the main process" exec "$@"