mirror of
				https://github.com/Xahau/xahaud.git
				synced 2025-11-04 02:35:48 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			66 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			66 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
#!/usr/bin/env bash
 | 
						|
 | 
						|
# auto-update script for rippled daemon
 | 
						|
 | 
						|
# Check for sudo/root permissions
 | 
						|
if [[ $(id -u) -ne 0 ]] ; then
 | 
						|
   echo "This update script must be run as root or sudo"
 | 
						|
   exit 1
 | 
						|
fi
 | 
						|
 | 
						|
LOCKDIR=/tmp/rippleupdate.lock
 | 
						|
UPDATELOG=/var/log/rippled/update.log
 | 
						|
 | 
						|
function cleanup {
 | 
						|
  # If this directory isn't removed, future updates will fail.
 | 
						|
  rmdir $LOCKDIR
 | 
						|
}
 | 
						|
 | 
						|
# Use mkdir to check if process is already running. mkdir is atomic, as against file create.
 | 
						|
if ! mkdir $LOCKDIR 2>/dev/null; then
 | 
						|
  echo $(date -u) "lockdir exists - won't proceed." >> $UPDATELOG
 | 
						|
  exit 1
 | 
						|
fi
 | 
						|
trap cleanup EXIT
 | 
						|
 | 
						|
source /etc/os-release
 | 
						|
can_update=false
 | 
						|
 | 
						|
if [[ "$ID" == "ubuntu" || "$ID" == "debian" ]] ; then
 | 
						|
  # Silent update
 | 
						|
  apt-get update -qq
 | 
						|
 | 
						|
  # The next line is an "awk"ward way to check if the package needs to be updated.
 | 
						|
  RIPPLE=$(apt-get install -s --only-upgrade rippled | awk '/^Inst/ { print $2 }')
 | 
						|
  test "$RIPPLE" == "rippled" && can_update=true
 | 
						|
 | 
						|
  function apply_update {
 | 
						|
    apt-get install rippled -qq
 | 
						|
  }
 | 
						|
elif [[ "$ID" == "fedora" || "$ID" == "centos" || "$ID" == "rhel" || "$ID" == "scientific" ]] ; then
 | 
						|
  RIPPLE_REPO=${RIPPLE_REPO-stable}
 | 
						|
  yum --disablerepo=* --enablerepo=ripple-$RIPPLE_REPO clean expire-cache
 | 
						|
 | 
						|
  yum check-update -q --enablerepo=ripple-$RIPPLE_REPO rippled || can_update=true
 | 
						|
 | 
						|
  function apply_update {
 | 
						|
    yum update -y --enablerepo=ripple-$RIPPLE_REPO rippled
 | 
						|
  }
 | 
						|
else
 | 
						|
  echo "unrecognized distro!"
 | 
						|
  exit 1
 | 
						|
fi
 | 
						|
 | 
						|
# Do the actual update and restart the service after reloading systemctl daemon.
 | 
						|
if [ "$can_update" = true ] ; then
 | 
						|
  exec 3>&1 1>>${UPDATELOG} 2>&1
 | 
						|
  set -e
 | 
						|
  apply_update
 | 
						|
  systemctl daemon-reload
 | 
						|
  systemctl restart rippled.service
 | 
						|
  echo $(date -u) "rippled daemon updated."
 | 
						|
else
 | 
						|
  echo $(date -u) "no updates available" >> $UPDATELOG
 | 
						|
fi
 | 
						|
 |