#!/bin/bash
{
	#////////////////////////////////////
	# DietPi Survey Script
	#
	#////////////////////////////////////
	# Created by Daniel Knight / daniel.knight@dietpi.com / dietpi.com
	#
	#////////////////////////////////////
	#
	# Info:
	# - http://dietpi.com/phpbb/viewtopic.php?f=8&t=20
	# - Sends DietPi statistics to FTP server (eg: what programs are installed, hardware model)
	# - Allows the DietPi project to focus on areas based on popularity.
	# - No private data is sent. Noone can indentify you.
	# - Runs when user installs software using dietpi-software
	#
	# You can opt out of dietpi-survey by running:
	# sed -i "1s/.*/0/" /DietPi/dietpi/.dietpi-survey
	#
	# File Sent format:
	# $FILENAME_FORMAT.txt
	#////////////////////////////////////

	#Import DietPi-Globals ---------------------------------------------------------------
	. /DietPi/dietpi/func/dietpi-globals
	export G_PROGRAM_NAME='DietPi-Survey'
	G_CHECK_ROOT_USER
	#Import DietPi-Globals ---------------------------------------------------------------

	SURVEY_VERSION=4
	SURVEY_SENTCOUNT=1

	OPTED_IN=1

	DIETPI_VERSION="$(sed -n 1p /DietPi/dietpi/.version).$(sed -n 2p /DietPi/dietpi/.version)"
	G_HW_MODEL=$(sed -n 1p /DietPi/dietpi/.hw_model)
	UNIQUE_ID=$(sed -n 5p /DietPi/dietpi/.hw_model)

	FTP_ADDR="dietpi.com"
	FTP_USER="dietpi-survey"
	FTP_PASS="raspberry13"

	Update_FileName_Format(){
		FILENAME_FORMAT="$SURVEY_VERSION-$UNIQUE_ID-$DIETPI_VERSION-$G_HW_MODEL.txt"
	}

	FP_SETTINGS="/DietPi/dietpi/.dietpi-survey"
	Write_Settings(){

		cat << _EOF_ > "$FP_SETTINGS"
$OPTED_IN
$SURVEY_SENTCOUNT
_EOF_
	}

	Read_Settings(){

		OPTED_IN=$(sed -n 1p "$FP_SETTINGS")
		SURVEY_SENTCOUNT=$(sed -n 2p "$FP_SETTINGS")

	}

	#/////////////////////////////////////////////////////////////////////////////////////
	# Main Loop
	#/////////////////////////////////////////////////////////////////////////////////////
	#Read data from .dietpi-survey file
	if [ -f "$FP_SETTINGS" ]; then

		Read_Settings

	#Create new file + generate UUID
	else

		Write_Settings

	fi

	#-----------------------------------------------------------------------------------
	#Opted in - Setup and send
	if (( $OPTED_IN == 1 )); then

		#Check if we have a working internet connection beforehand
		G_CHECK_URL "$FTP_ADDR"
		if (( $? == 0 )); then

			#Obtain active network adapter.
			/DietPi/dietpi/func/obtain_network_details
			active_network_adapter=$(sed -n 3p /DietPi/dietpi/.network)

			#Grab filename to use
			Update_FileName_Format

			#Generate text file for upload
			# -  wput does not work with a filepath, so we must enter the directory and use a filename only.
			cd /tmp

			cat << _EOF_ > "$FILENAME_FORMAT"
-------------------------
DietPi-Survey v$SURVEY_VERSION
-------------------------

Upload Count   : $SURVEY_SENTCOUNT
DietPi Version : $DIETPI_VERSION
Mac Address    : $( ifconfig -a | grep -m1 "$active_network_adapter" | awk '{print $NF}' | sed 's/://g')
Hardware Index : $G_HW_MODEL
Hardware Name  : $G_HW_MODEL_DESCRIPTION
Distro Index   : $G_DISTRO
Autoboot Index : $(cat /DietPi/dietpi/.dietpi-autostart_index)
Country        : $(curl --max-time 4 -s http://whatismycountry.com/ | sed -n 's|.*,\(.*\)</h3>|\1|p')
Hostname       : $(cat /etc/hostname)

-------------------------
DietPi-Software Installed
-------------------------
$(cat /DietPi/dietpi/.installed | grep ' =2 ')

-------------------------
FileSystem
-------------------------
$(df -h)
_EOF_

			#upload to server
			wput --timeout=10th-4 --tries=1 --waitretry=4 -q -B -u "$FILENAME_FORMAT" ftp://"$FTP_USER":"$FTP_PASS"@"$FTP_ADDR"

			#clear generated temp file
			rm "$FILENAME_FORMAT"

			#Update .dietpi-survey file
			((SURVEY_SENTCOUNT++))
			Write_Settings

		fi
	fi

	#-----------------------------------------------------------------------------------
	exit 0
	#-----------------------------------------------------------------------------------
}