PYROS_DOCKER_UPDATE 1.98 KB
#!/usr/bin/env bash

# PRE-CONDITION : pyros container must be running
root_folder=$(pwd 2>&1)
# If no container is running Start it
if ! [ $(docker ps | grep 'pyros' | wc -l) -eq 4 ]
then
    echo "pyros-db or pyros weren't running, starting them..."
    ./PYROS_DOCKER_START
    #./PYROS_DOCKER_START.bat
fi

# 1) Update Guitastro
echo "Updating Guitastro source code"
cd ../vendor/guitastro/
gitpull_output=$(git pull 2>&1)
already_uptodate="Déjà à jour."
if [ $? -eq 1 ]; then
    if [[ "$gitpull_output"!="$already_uptodate" ]]; then
        echo "Git pull failed. Error message is:"
        echo $gitpull_output
        exit 1
    fi
fi
echo $gitpull_output
check_files=("docker-compose.yml" "Dockerfile" "install/requirements.in")
for file in "${check_files[@]}"
do
    if grep -q "$file" <<< "$gitpull_output"; then    
        echo "WARNING : One of docker related files has been changed. You should build again the PyROS Image"
        return 1
    fi
done

# 2) Update PyROS
cd $root_folder
echo "Updating PyROS source code"
gitpull_output=$(git pull 2>&1)
if [ $? -eq 1 ]; then
    if [[ "$gitpull_output"!="$already_uptodate" ]]; then
        echo "Git pull failed. Error message is:"
        echo $gitpull_output
        exit 1
    fi
fi
echo $gitpull_output
check_files=("docker-compose.yml" "Dockerfile" "install/requirements.in")
for file in "${check_files[@]}"
do
    if grep -q "$file" <<< "$gitpull_output"; then    
        echo "WARNING : One of docker related files has been changed. You should build again the PyROS Image"
        return 1
    fi
done

# TODO : test if git pull worked and if git pull changed dockerfile, requirements.in, docker-compose.yml
# Tell user to rebuild


# 3) Update all observatories with git repo
for dir in ../../PYROS_OBSERVATORY/* ; do
    if [ -d .git ] ; then 
        echo "Updating observatory $dir source code"
        git pull
    fi
done

# 3) pyros.py update => update BD + doc + Guitastro requirements
docker compose exec pyros python3 pyros.py update