Commit 156992e1bf788fff9421c9e6d6e167237d892f1c
1 parent
ec1e5b33
Exists in
dev
Refactorisation PYROS_DOCKER_UPDATE
Showing
1 changed file
with
37 additions
and
44 deletions
Show diff stats
docker/PYROS_DOCKER_UPDATE
@@ -3,6 +3,34 @@ | @@ -3,6 +3,34 @@ | ||
3 | # In docker/ folder | 3 | # In docker/ folder |
4 | #root_folder=$(pwd 2>&1) | 4 | #root_folder=$(pwd 2>&1) |
5 | 5 | ||
6 | +already_uptodate="Déjà à jour." | ||
7 | +check_files=("docker-compose.yml" "Dockerfile" "install/requirements.in") | ||
8 | +check_files="${check_files[@]}" | ||
9 | +function git_pull { | ||
10 | + dir=$1 | ||
11 | + #echo $check_files | ||
12 | + cd $dir | ||
13 | + gitpull_output=$(git pull 2>&1) | ||
14 | + # IF git pull error (other than $already_uptodate) => stop | ||
15 | + if [[ $? -eq 1 && "$gitpull_output"!="$already_uptodate" ]]; then | ||
16 | + echo "Git pull failed. Error message is:" | ||
17 | + echo $gitpull_output | ||
18 | + exit 1 | ||
19 | + fi | ||
20 | + echo $gitpull_output | ||
21 | + # Check if exists file changed that requires rebuild | ||
22 | + #for file in "${check_files[@]}" | ||
23 | + for f in $check_files ; do | ||
24 | + #echo "check $f" | ||
25 | + if grep -q "$f" <<< "$gitpull_output"; then | ||
26 | + echo "WARNING : One of docker related files has been changed. You should build again the PyROS Image" | ||
27 | + return 1 | ||
28 | + fi | ||
29 | + done | ||
30 | + cd - > /dev/null | ||
31 | +} | ||
32 | + | ||
33 | + | ||
6 | # PRE-CONDITION : pyros container must be running | 34 | # PRE-CONDITION : pyros container must be running |
7 | # If no container is running Start it | 35 | # If no container is running Start it |
8 | if ! [ $(docker ps | grep 'pyros' | wc -l) -eq 4 ] ; then | 36 | if ! [ $(docker ps | grep 'pyros' | wc -l) -eq 4 ] ; then |
@@ -18,27 +46,10 @@ echo "I - Updating Guitastro source code" | @@ -18,27 +46,10 @@ echo "I - Updating Guitastro source code" | ||
18 | echo "**********************************" | 46 | echo "**********************************" |
19 | echo | 47 | echo |
20 | # Go to GuitAstro/ folder | 48 | # Go to GuitAstro/ folder |
21 | -cd ../vendor/guitastro/ | ||
22 | -already_uptodate="Déjà à jour." | ||
23 | -gitpull_output=$(git pull 2>&1) | ||
24 | -if [ $? -eq 1 ]; then | ||
25 | - if [[ "$gitpull_output"!="$already_uptodate" ]]; then | ||
26 | - echo "Git pull failed. Error message is:" | ||
27 | - echo $gitpull_output | ||
28 | - exit 1 | ||
29 | - fi | ||
30 | -fi | ||
31 | -echo $gitpull_output | ||
32 | -# Check if exists file changed that requires rebuild | ||
33 | -check_files=("docker-compose.yml" "Dockerfile" "install/requirements.in") | ||
34 | -for file in "${check_files[@]}" | ||
35 | -do | ||
36 | - if grep -q "$file" <<< "$gitpull_output"; then | ||
37 | - echo "WARNING : One of docker related files has been changed. You should build again the PyROS Image" | ||
38 | - return 1 | ||
39 | - fi | ||
40 | -done | ||
41 | -cd - > /dev/null | 49 | +git_pull ../vendor/guitastro/ |
50 | +#check_files=("docker-compose.yml" "Dockerfile" "install/requirements.in") | ||
51 | +#git_pull ../vendor/guitastro/ ${check_files[@]} | ||
52 | + | ||
42 | 53 | ||
43 | # II - Update PyROS | 54 | # II - Update PyROS |
44 | #cd $root_folder | 55 | #cd $root_folder |
@@ -48,26 +59,9 @@ echo "II - Updating PyROS source code" | @@ -48,26 +59,9 @@ echo "II - Updating PyROS source code" | ||
48 | echo "**********************************" | 59 | echo "**********************************" |
49 | echo | 60 | echo |
50 | # Go to PYROS/ folder | 61 | # Go to PYROS/ folder |
51 | -cd ../ | ||
52 | -gitpull_output=$(git pull 2>&1) | ||
53 | -if [ $? -eq 1 ]; then | ||
54 | - if [[ "$gitpull_output"!="$already_uptodate" ]]; then | ||
55 | - echo "Git pull failed. Error message is:" | ||
56 | - echo $gitpull_output | ||
57 | - exit 1 | ||
58 | - fi | ||
59 | -fi | ||
60 | -echo $gitpull_output | 62 | +git_pull ../ |
61 | # Check if exists file changed that requires rebuild | 63 | # Check if exists file changed that requires rebuild |
62 | -check_files=("docker-compose.yml" "Dockerfile" "install/requirements.in") | ||
63 | -for file in "${check_files[@]}" | ||
64 | -do | ||
65 | - if grep -q "$file" <<< "$gitpull_output"; then | ||
66 | - echo "WARNING : One of docker related files has been changed. You should build again the PyROS Image" | ||
67 | - return 1 | ||
68 | - fi | ||
69 | -done | ||
70 | -cd - > /dev/null | 64 | +#check_files=("docker-compose.yml" "Dockerfile" "install/requirements.in") |
71 | 65 | ||
72 | 66 | ||
73 | # TODO : test if git pull worked and if git pull changed dockerfile, requirements.in, docker-compose.yml | 67 | # TODO : test if git pull worked and if git pull changed dockerfile, requirements.in, docker-compose.yml |
@@ -83,12 +77,11 @@ echo | @@ -83,12 +77,11 @@ echo | ||
83 | # Go to PYROS observatories folder | 77 | # Go to PYROS observatories folder |
84 | cd ../../PYROS_OBSERVATORY/ | 78 | cd ../../PYROS_OBSERVATORY/ |
85 | for dir in * ; do | 79 | for dir in * ; do |
86 | - cd $dir | ||
87 | - if [ -d .git ] ; then | 80 | + if [ -d $dir/.git ] ; then |
88 | echo "Updating observatory $dir source code" | 81 | echo "Updating observatory $dir source code" |
89 | - git pull | 82 | + git_pull $dir |
83 | + #cd ../ | ||
90 | fi | 84 | fi |
91 | - cd ../ | ||
92 | done | 85 | done |
93 | cd ../PYROS/docker/ | 86 | cd ../PYROS/docker/ |
94 | 87 |