[Update] Add --ours parameter to override merge strategy
This commit is contained in:
		
							parent
							
								
									03ad0f22c4
								
							
						
					
					
						commit
						c7280e182f
					
				
							
								
								
									
										83
									
								
								update.sh
									
									
									
									
									
								
							
							
						
						
									
										83
									
								
								update.sh
									
									
									
									
									
								
							| @ -4,9 +4,51 @@ for bin in curl docker-compose docker git awk sha1sum; do | |||||||
|   if [[ -z $(which ${bin}) ]]; then echo "Cannot find ${bin}, exiting..."; exit 1; fi |   if [[ -z $(which ${bin}) ]]; then echo "Cannot find ${bin}, exiting..."; exit 1; fi | ||||||
| done | done | ||||||
| 
 | 
 | ||||||
|  | set -o pipefail | ||||||
|  | export LC_ALL=C | ||||||
|  | DATE=$(date +%Y-%m-%d_%H_%M_%S) | ||||||
|  | BRANCH=$(git rev-parse --abbrev-ref HEAD) | ||||||
|  | declare -a DC_PARAMS | ||||||
|  | 
 | ||||||
|  | while (($#)); do | ||||||
|  |   case "${1}" in | ||||||
|  |     --check|-c) | ||||||
|  |       echo "Checking remote code for updates..." | ||||||
|  |       git fetch origin ${BRANCH} | ||||||
|  |       if [[ -z $(git log HEAD --pretty=format:"%H" | grep $(git rev-parse origin/${BRANCH})) ]]; then | ||||||
|  |         echo "Updated code is available." | ||||||
|  |         exit 0 | ||||||
|  |       else | ||||||
|  |         echo "No updates available." | ||||||
|  |         exit 3 | ||||||
|  |       fi | ||||||
|  |     ;; | ||||||
|  |     --no-start) | ||||||
|  |       DC_PARAMS=(${DC_PARAMS[@]} "--no-start") | ||||||
|  |     ;; | ||||||
|  |     --ours) | ||||||
|  |       MERGE_STRATEGY=ours | ||||||
|  |     ;; | ||||||
|  |   esac | ||||||
|  | done | ||||||
|  | 
 | ||||||
| [[ ! -f mailcow.conf ]] && { echo "mailcow.conf is missing"; exit 1;} | [[ ! -f mailcow.conf ]] && { echo "mailcow.conf is missing"; exit 1;} | ||||||
| 
 | 
 | ||||||
| CONFIG_ARRAY=("SKIP_LETS_ENCRYPT" "USE_WATCHDOG" "WATCHDOG_NOTIFY_EMAIL" "SKIP_CLAMD" "SKIP_IP_CHECK" "SKIP_FAIL2BAN" "ADDITIONAL_SAN" "DOVEADM_PORT" "IPV4_NETWORK" "IPV6_NETWORK" "LOG_LINES") | CONFIG_ARRAY=( | ||||||
|  |   "SKIP_LETS_ENCRYPT" | ||||||
|  |   "USE_WATCHDOG" | ||||||
|  |   "WATCHDOG_NOTIFY_EMAIL" | ||||||
|  |   "SKIP_CLAMD" | ||||||
|  |   "SKIP_IP_CHECK" | ||||||
|  |   "SKIP_NETFILTER" | ||||||
|  |   "ADDITIONAL_SAN" | ||||||
|  |   "DOVEADM_PORT" | ||||||
|  |   "IPV4_NETWORK" | ||||||
|  |   "IPV6_NETWORK" | ||||||
|  |   "LOG_LINES" | ||||||
|  |   "SNAT_TO_SOURCE" | ||||||
|  | ) | ||||||
|  | 
 | ||||||
| sed -i '$a\' mailcow.conf | sed -i '$a\' mailcow.conf | ||||||
| for option in ${CONFIG_ARRAY[@]}; do | for option in ${CONFIG_ARRAY[@]}; do | ||||||
|   if [[ ${option} == "ADDITIONAL_SAN" ]]; then |   if [[ ${option} == "ADDITIONAL_SAN" ]]; then | ||||||
| @ -44,15 +86,23 @@ for option in ${CONFIG_ARRAY[@]}; do | |||||||
|   elif [[ ${option} == "IPV6_NETWORK" ]]; then |   elif [[ ${option} == "IPV6_NETWORK" ]]; then | ||||||
|     if ! grep -q ${option} mailcow.conf; then |     if ! grep -q ${option} mailcow.conf; then | ||||||
|       echo "Adding new option \"${option}\" to mailcow.conf" |       echo "Adding new option \"${option}\" to mailcow.conf" | ||||||
|       echo '# Internal IPv6 subnet in fd00::/8' >> mailcow.conf |       echo '# Internal IPv6 subnet in fc00::/7' >> mailcow.conf | ||||||
|       echo "IPV6_NETWORK=fd4d:6169:6c63:6f77::/64" >> mailcow.conf |       echo "IPV6_NETWORK=fd4d:6169:6c63:6f77::/64" >> mailcow.conf | ||||||
|     fi |     fi | ||||||
|  |   elif [[ ${option} == "SNAT_TO_SOURCE" ]]; then | ||||||
|  |     if ! grep -q ${option} mailcow.conf; then | ||||||
|  |       echo "Adding new option \"${option}\" to mailcow.conf" | ||||||
|  |       echo '# Use this IP for outgoing connections (SNAT)' >> mailcow.conf | ||||||
|  |       echo "#SNAT_TO_SOURCE=" >> mailcow.conf | ||||||
|  |     fi | ||||||
|   elif ! grep -q ${option} mailcow.conf; then |   elif ! grep -q ${option} mailcow.conf; then | ||||||
|     echo "Adding new option \"${option}\" to mailcow.conf" |     echo "Adding new option \"${option}\" to mailcow.conf" | ||||||
|     echo "${option}=n" >> mailcow.conf |     echo "${option}=n" >> mailcow.conf | ||||||
|   fi |   fi | ||||||
| done | done | ||||||
| 
 | 
 | ||||||
|  | sed -i 's#SKIP_FAIL2BAN#SKIP_NETFILTER#g' mailcow.conf | ||||||
|  | 
 | ||||||
| echo -en "Checking internet connection... " | echo -en "Checking internet connection... " | ||||||
| curl -o /dev/null google.com -sm3 | curl -o /dev/null google.com -sm3 | ||||||
| if [[ $? != 0 ]]; then | if [[ $? != 0 ]]; then | ||||||
| @ -62,31 +112,6 @@ if [[ $? != 0 ]]; then | |||||||
|   echo -e "\e[32mOK\e[0m" |   echo -e "\e[32mOK\e[0m" | ||||||
| fi | fi | ||||||
| 
 | 
 | ||||||
| set -o pipefail |  | ||||||
| export LC_ALL=C |  | ||||||
| DATE=$(date +%Y-%m-%d_%H_%M_%S) |  | ||||||
| BRANCH=$(git rev-parse --abbrev-ref HEAD) |  | ||||||
| declare -a DC_PARAMS |  | ||||||
| 
 |  | ||||||
| while (($#)); do |  | ||||||
|   case "${1}" in |  | ||||||
|     --check|-c) |  | ||||||
|       echo "Checking remote code for updates..." |  | ||||||
|       git fetch origin ${BRANCH} |  | ||||||
|       if [[ -z $(git log HEAD --pretty=format:"%H" | grep $(git rev-parse origin/${BRANCH})) ]]; then |  | ||||||
|         echo "Updated code is available." |  | ||||||
|         exit 0 |  | ||||||
|       else |  | ||||||
|         echo "No updates available." |  | ||||||
|         exit 3 |  | ||||||
|       fi |  | ||||||
|     ;; |  | ||||||
|     --no-start) |  | ||||||
|       DC_PARAMS=(${DC_PARAMS[@]} "--no-start") |  | ||||||
|     ;; |  | ||||||
|   esac |  | ||||||
| done |  | ||||||
| 
 |  | ||||||
| echo -e "\e[32mChecking for newer update script...\e[0m" | echo -e "\e[32mChecking for newer update script...\e[0m" | ||||||
| SHA1_1=$(sha1sum update.sh) | SHA1_1=$(sha1sum update.sh) | ||||||
| git fetch origin ${BRANCH} | git fetch origin ${BRANCH} | ||||||
| @ -122,9 +147,9 @@ git add -u | |||||||
| git commit -am "Before update on ${DATE}" > /dev/null | git commit -am "Before update on ${DATE}" > /dev/null | ||||||
| echo -e "\e[32mFetching updated code from remote...\e[0m" | echo -e "\e[32mFetching updated code from remote...\e[0m" | ||||||
| git fetch origin ${BRANCH} | git fetch origin ${BRANCH} | ||||||
| echo -e "\e[32mMerging local with remote code (recursive, options: \"theirs\", \"patience\"...\e[0m" | echo -e "\e[32mMerging local with remote code (recursive, strategy: \"${MERGE_STRATEGY:-theirs}\", options: \"patience\"...\e[0m" | ||||||
| git config merge.defaultToUpstream true | git config merge.defaultToUpstream true | ||||||
| git merge -Xtheirs -Xpatience -m "After update on ${DATE}" | git merge -X${MERGE_STRATEGY:-theirs} -Xpatience -m "After update on ${DATE}" | ||||||
| # Need to use a variable to not pass return codes of if checks | # Need to use a variable to not pass return codes of if checks | ||||||
| MERGE_RETURN=$? | MERGE_RETURN=$? | ||||||
| if [[ ${MERGE_RETURN} == 128 ]]; then | if [[ ${MERGE_RETURN} == 128 ]]; then | ||||||
|  | |||||||
		Loading…
	
		Reference in New Issue
	
	Block a user
	 andre.peters
						andre.peters