#!/bin/bash if [ -n "$ADDONS_GIT_REPOS" ]; then # Setup git ssh key if [ -n "$GIT_SSH_PRIVATE_KEY" ]; then entrypoint-log "Setup SSH key from env vars." mkdir -p ~/.ssh chmod 700 ~/.ssh DECODED_GIT_SSH_PRIVATE_KEY=$(echo -e "$GIT_SSH_PRIVATE_KEY" | base64 -d) echo "$DECODED_GIT_SSH_PRIVATE_KEY" > ~/.ssh/id_ed25519 chmod 600 ~/.ssh/id_ed25519 eval "$(ssh-agent -s)" ssh-add ~/.ssh/id_ed25519 || (entrypoint-log "Dumping ~/.ssh/id_ed25519 content:" && cat ~/.ssh/id_ed25519) fi # Clone git repo addons into /var/lib/odoo/git entrypoint-log "Cloning git repos: $ADDONS_GIT_REPOS" ADDONS_GIT_REPOS=$(echo "$ADDONS_GIT_REPOS" | tr "," "\n") for ADDON_GIT_REPO in $ADDONS_GIT_REPOS; do # Supported urls: # SSH: git@github.com:OCA/server-tools.git#16.0 # HTTP: https://github.com/OCA/server-tools.git#16.0 GIT_URL=$(echo "$ADDON_GIT_REPO" | cut -d# -f1) GIT_BRANCH=$(echo "$ADDON_GIT_REPO" | cut -d# -f2) GIT_HOSTNAME=$(parse-url "$GIT_URL" hostname) GIT_PATH=$(parse-url "$GIT_URL" path | sed 's/.git//g') GIT_PATH="/var/lib/odoo/git/$GIT_HOSTNAME/$GIT_PATH" if [ ! -d "$GIT_PATH/.git" ]; then # Clone git repo and submodules mkdir -p "$GIT_PATH" ssh-keyscan -t rsa,dsa "$GIT_HOSTNAME" > ~/.ssh/known_hosts 2>/dev/null entrypoint-log "Clone $GIT_URL branch $GIT_BRANCH." git clone "$GIT_URL" --depth 1 --single-branch --branch "$GIT_BRANCH" "$GIT_PATH" else entrypoint-log "Update $GIT_URL branch $GIT_BRANCH." git -C "$GIT_PATH" switch "$GIT_BRANCH" git -C "$GIT_PATH" pull fi if [ -f "$GIT_PATH/.gitmodules" ]; then entrypoint-log "Init and update git submodules in $GIT_PATH." git -C "$GIT_PATH" submodule update --init --recursive --depth 1 fi # Add git repo to addons path if [ -n "$ODOO_ADDONS_PATH" ]; then ODOO_ADDONS_PATH="$ODOO_ADDONS_PATH,$GIT_PATH" else ODOO_ADDONS_PATH="$GIT_PATH" fi done # Remove git ssh key if [ -n "$GIT_SSH_PRIVATE_KEY" ]; then ssh-add -d ~/.ssh/id_ed25519 rm ~/.ssh/id_ed25519 fi export ODOO_ADDONS_PATH fi