UpdateLinuxNixScript

    
#!/bin/bash

NIX_DEFAULT_LOCATION="https://suremdm.42gears.com/nix/nix.tar.gz"

if [ "$EUID" -ne 0 ]
  then echo "Permission denied. Please run as root."
  exit 126
fi

if [ ! -f "/usr/share/java/nix/nix.jar" ]; then
    echo "Cannot find existing nix @ /usr/share/java/nix/nix.jar"
    echo "Nothing to upgrade. Exiting..."
    exit 1
fi

rm nix.tar.gz
rm -rf ./nix

if [ -z "$1" ]; then
    wget $NIX_DEFAULT_LOCATION
else
    wget $1
fi

if [ ! -f "nix.tar.gz" ]; then
    echo "Cannot Download Nix package. Please check your Internet connection or download URL."
    echo "Exiting"
    exit 1
fi

tar -xvzf nix.tar.gz

# Backup Existing Nix Installation in-case something goes wrong - 
BACKUP_FILE=$HOME"/nix_backup_date_"$(date '+%d%b%Y_%H%M%S')".tar.gz"
echo "Backing up to $BACKUP_FILE"
tar -zcvf $BACKUP_FILE /usr/share/java/nix/

if [ -f "$BACKUP_FILE" ]; then
	echo "Nix backup location: $BACKUP_FILE"
else
    echo "Could not create backup file $BACKUP_FILE. Exiting..."
    exit 1
fi

if [ ! -d "/usr/share/java/nix/lib" ]; then
    mkdir /usr/share/java/nix/lib
    chmod -R 0750 /usr/share/java/nix/lib
    chown root:root /usr/share/java/nix/lib
fi

cp nix/app/*.jar /usr/share/java/nix/
cp nix/app/lib/*.jar /usr/share/java/nix/lib/

# added code for backward compatibility

NIXEVEFILE=/usr/share/java/nix/nix.eve

addEnvironmentFile() {
	
	# Removing Surelock jar
	
	rm /usr/share/java/nix/surelock.jar

	#update nix.env file

	cp nix/bootstrap/nix.eve /usr/share/java/nix/

	# Write ENV File
	UUID1=$(uuidgen)
	UUID2=$(uuidgen)

	VAL1=$(echo $UUID1 | base64)
	VAL2=$(echo $UUID2 | base64)

	sed -i "s/("CYPHER_KEY_RUNTIME" * = *).*$/1 $VAL1/" $NIXEVEFILE
	sed -i "s/("CYPHER_VECTOR_RUNTIME" * = *).*$/1 $VAL2/" $NIXEVEFILE

	#make change in service file of newly added nix.env file

	NIXSERVICEFILE_D=/usr/lib/systemd/system/nix.service

	NIXROBOTSERVICEFILE_D=/usr/lib/systemd/system/nixr.service

	NixServiceEnv=$(grep 'EnvironmentFile' NIXSERVICEFILE_D | grep cut -f1 -d: )

	NixRServiceEnv=$(grep 'EnvironmentFile' NIXROBOTSERVICEFILE_D | grep cut -f1 -d: )

	if [ -z "$NixServiceEnv" ]
	then
		echo "$NixServiceEnv not having envorinment file path"
		sed -i '/WorkingDirectory=/a EnvironmentFile='$NIXEVEFILE $NIXSERVICEFILE_D
	else
		echo "$NixServiceEnv having envorinment file path"
	fi

	if [ -z "$NixRServiceEnv" ]
	then
		echo "$NixRServiceEnv not having envorinment file path"
		sed -i '/WorkingDirectory=/a EnvironmentFile='$NIXEVEFILE $NIXROBOTSERVICEFILE_D
	else
		echo "$NixRServiceEnv having envorinment file path"
	fi

	systemctl daemon-reload

	systemctl enable nix.service
	systemctl enable nixr.service

}

if [ ! -f "$NIXEVEFILE" ]; then
    echo "Adding Environment Variable File Path to Services"
    addEnvironmentFile
    echo "Service File Updated"
    
fi

sleep 5 && service nixr restart && service nix restart &

echo "Upgrade Complete"