summaryrefslogblamecommitdiff
path: root/pull.sh
blob: 1253087e2b5dee9016f0d3ab7009db60a53fa074 (plain) (tree)
1
2
3
4
5
6
7
8
9

           

             



                          
              
           
                                                    

                                      
                 

              
                               
                                                                                       
                              




                                                                   
             

 



                          
              
           


                                                  
                                                    




                                                                   

                                                        
      
             

 




                          

                              
                               
                              
                                


                                         
                        

                
                  
#!/bin/bash

export LANG=C

function status {
    if [ ! -d "$1" ]; then
        return
    fi
    DIR=$(pwd)
    cd "$1"
    echo "$2 ($(git symbolic-ref --short -q HEAD)):"
    if [[ "${CMD}" == "force" ]]; then
        git pull --commit --no-edit
        cd "$DIR"
        return
    fi
    STR=$(git diff --name-only)
    STR2=$(git status|grep "Your branch is ahead")$(git status|grep -E "have diverged")
    STR3=$(git status -s -uno)
    if [[ -n "${STR}${STR2}${STR3}" ]]; then
        echo -e "\e[1;31mCant pull because changes not pushed\e[0m"
    else
        git pull
    fi
    cd "$DIR"
}

function status2 {
    if [ ! -d "$1" ]; then
        return
    fi
    DIR=$(pwd)
    cd "$1"
    STR=$(git diff --name-only)
    STR2=$(git status|grep "Your branch is ahead")
    STR3=$(git status -s -uno)
    echo "$2 ($(git symbolic-ref --short -q HEAD)):"
    if [[ -n "${STR}${STR2}${STR3}" ]]; then
        echo -e "\e[1;31mCant pull because changes not pushed\e[0m"
    else
        git pull --no-commit
        git fetch origin
        export BRANCH=$(git rev-parse --abbrev-ref HEAD)
        git reset --hard "origin/${BRANCH}"
    fi
    cd "$DIR"
}

CMD="$1"
if [[ -z "${CMD}" ]]; then
    export CMD="normal"
fi

status . evol-all
status client-data client-data
status2 server-code server-code
status server-data server-data
status server-local server-local
status tools tools
status server-code/src/evol evol-hercules
status music music
status manaplus manaplus
status docs docs
status art art
status media media