[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 | ||||
| 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;} | ||||
| 
 | ||||
| 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 | ||||
| for option in ${CONFIG_ARRAY[@]}; do | ||||
|   if [[ ${option} == "ADDITIONAL_SAN" ]]; then | ||||
| @ -44,15 +86,23 @@ for option in ${CONFIG_ARRAY[@]}; do | ||||
|   elif [[ ${option} == "IPV6_NETWORK" ]]; then | ||||
|     if ! grep -q ${option} mailcow.conf; then | ||||
|       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 | ||||
|     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 | ||||
|     echo "Adding new option \"${option}\" to mailcow.conf" | ||||
|     echo "${option}=n" >> mailcow.conf | ||||
|   fi | ||||
| done | ||||
| 
 | ||||
| sed -i 's#SKIP_FAIL2BAN#SKIP_NETFILTER#g' mailcow.conf | ||||
| 
 | ||||
| echo -en "Checking internet connection... " | ||||
| curl -o /dev/null google.com -sm3 | ||||
| if [[ $? != 0 ]]; then | ||||
| @ -62,31 +112,6 @@ if [[ $? != 0 ]]; then | ||||
|   echo -e "\e[32mOK\e[0m" | ||||
| 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" | ||||
| SHA1_1=$(sha1sum update.sh) | ||||
| git fetch origin ${BRANCH} | ||||
| @ -122,9 +147,9 @@ git add -u | ||||
| git commit -am "Before update on ${DATE}" > /dev/null | ||||
| echo -e "\e[32mFetching updated code from remote...\e[0m" | ||||
| 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 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 | ||||
| MERGE_RETURN=$? | ||||
| if [[ ${MERGE_RETURN} == 128 ]]; then | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user
	 andre.peters
						andre.peters