34 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			34 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
#!/bin/bash
 | 
						|
 | 
						|
PKG_NAME="gitlab-ce"
 | 
						|
 | 
						|
CURRENT_VERSION=$(dpkg -s $PKG_NAME | grep Version | sed 's/Version: //')
 | 
						|
MINOR_PREFIX=$(dpkg -s $PKG_NAME | grep Version | sed 's/Version: //' | awk -F "." '{print $1 "." $2}')
 | 
						|
UPDATE_TO=$(apt-cache madison $PKG_NAME | grep $CURRENT_VERSION -B5 | awk -F "|" '{print $2}' | sed 's/ //' | grep $MINOR_PREFIX | head -n1)
 | 
						|
 | 
						|
DATE=$(date +'%Y-%m-%d %H:%M:%S')
 | 
						|
 | 
						|
UPDATE_LOG="/var/log/gitlab-auto-update.log"
 | 
						|
ERROR_LOG="/var/log/gitlab-auto-update.error.log"
 | 
						|
 | 
						|
# Remove leading/trailing whitespace and newlines from the strings
 | 
						|
CURRENT_VERSION=$(echo "$CURRENT_VERSION" | tr -d '[:space:]')
 | 
						|
UPDATE_TO=$(echo "$UPDATE_TO" | tr -d '[:space:]')
 | 
						|
 | 
						|
if [[ "$CURRENT_VERSION" == "$UPDATE_TO" ]]; then
 | 
						|
	echo "$DATE | $CURRENT_VERSION | no new minor version is available" >> /var/log/gitlab-auto-update.log
 | 
						|
else
 | 
						|
	echo "$DATE | $CURRENT_VERSION | updating to $UPDATE_TO" >> /var/log/gitlab-auto-update.log
 | 
						|
	sudo apt install -y "$PKG_NAME=$UPDATE_TO" 2>"$ERROR_LOG"
 | 
						|
	
 | 
						|
	# Check if there were any errors
 | 
						|
	if [ -s "$ERROR_LOG" ]; then
 | 
						|
		echo "$DATE | $CURRENT_VERSION | error occurred while updating the package" >> $UPDATE_LOG
 | 
						|
		cat "$ERROR_LOG"
 | 
						|
		exit 1
 | 
						|
	else
 | 
						|
		echo "$DATE | $CURRENT_VERSION | package updated successfully" >> $UPDATE_LOG
 | 
						|
	fi
 | 
						|
fi
 | 
						|
 |