diff --git a/files/remotely/remotely-agent-ubuntu.sh b/files/remotely/remotely-agent-ubuntu.sh new file mode 100644 index 0000000..be2ef57 --- /dev/null +++ b/files/remotely/remotely-agent-ubuntu.sh @@ -0,0 +1,106 @@ +#!/bin/bash +HostName="https://remotely.akanealw.com" +Organization="7fbfb541-0720-42cf-b363-ddf13a19fd16" +GUID=$(cat /proc/sys/kernel/random/uuid) +UpdatePackagePath="" +InstallDir="/usr/local/bin/Remotely" + +apt-get update +apt-get -y install curl libx11-dev libxrandr-dev unzip libc6-dev libxtst-dev xclip jq apt-transport-https + +ETag=$(curl --head $HostName/Content/Remotely-Linux.zip | grep -i "etag" | cut -d' ' -f 2) +LogPath="/var/log/remotely/Agent_Install.log" + +mkdir -p /var/log/remotely +Args=( "$@" ) +ArgLength=${#Args[@]} + +for (( i=0; i<${ArgLength}; i+=2 )); +do + if [ "${Args[$i]}" = "--uninstall" ]; then + systemctl stop remotely-agent + rm -r -f $InstallDir + rm -f /etc/systemd/system/remotely-agent.service + systemctl daemon-reload + exit + elif [ "${Args[$i]}" = "--path" ]; then + UpdatePackagePath="${Args[$i+1]}" + fi +done + +if [ -z "$ETag" ]; then + echo "ETag is empty. Aborting install." | tee -a $LogPath + exit 1 +fi + +ubuntuVersion=$(lsb_release -r -s) + +wget -q https://packages.microsoft.com/config/ubuntu/$ubuntuVersion/packages-microsoft-prod.deb -O packages-microsoft-prod.deb +dpkg -i packages-microsoft-prod.deb +apt-get update +#apt-get -y install apt-transport-https +apt-get -y install dotnet-runtime-7.0 +rm packages-microsoft-prod.deb + +#apt-get -y install libx11-dev libxrandr-dev unzip libc6-dev libxtst-dev xclip jq + + +if [ -f "$InstallDir/ConnectionInfo.json" ]; then + SavedGUID=`cat "$InstallDir/ConnectionInfo.json" | jq -r '.DeviceID'` + if [[ "$SavedGUID" != "null" && -n "$SavedGUID" ]]; then + GUID="$SavedGUID" + fi +fi + +rm -r -f $InstallDir +rm -f /etc/systemd/system/remotely-agent.service + +mkdir -p $InstallDir + +if [ -z "$UpdatePackagePath" ]; then + echo "Downloading client." | tee -a $LogPath + wget -q -O /tmp/Remotely-Linux.zip $HostName/Content/Remotely-Linux.zip +else + echo "Copying install files." | tee -a $LogPath + cp "$UpdatePackagePath" /tmp/Remotely-Linux.zip + rm -f "$UpdatePackagePath" +fi + +unzip -o /tmp/Remotely-Linux.zip -d $InstallDir +rm -f /tmp/Remotely-Linux.zip +chmod +x $InstallDir/Remotely_Agent +chmod +x $InstallDir/Desktop/Remotely_Desktop + + +connectionInfo="{ + \"DeviceID\":\"$GUID\", + \"Host\":\"$HostName\", + \"OrganizationID\": \"$Organization\", + \"ServerVerificationToken\":\"\" +}" + +echo "$connectionInfo" > $InstallDir/ConnectionInfo.json + +curl --head $HostName/Content/Remotely-Linux.zip | grep -i "etag" | cut -d' ' -f 2 > $InstallDir/etag.txt + +echo Creating service. | tee -a $LogPath + +serviceConfig="[Unit] +Description=The Remotely agent used for remote access. + +[Service] +WorkingDirectory=$InstallDir +ExecStart=$InstallDir/Remotely_Agent +Restart=always +StartLimitIntervalSec=0 +RestartSec=10 + +[Install] +WantedBy=graphical.target" + +echo "$serviceConfig" > /etc/systemd/system/remotely-agent.service + +systemctl enable remotely-agent +systemctl restart remotely-agent + +echo Install complete. | tee -a $LogPath