echoed=false

Vagrant.configure("2") do |config|
  config.vm.box = "ubuntu/bionic64"
  #config.disksize.size = "20GB"

  config.vm.provider "virtualbox" do |v|
    host = RbConfig::CONFIG['host_os']

    # Give VM 1/4 system memory & access to all cpu cores on the host
    if host =~ /darwin/
      cpus = `sysctl -n hw.ncpu`.to_i
      # sysctl returns Bytes and we need to convert to MB
      mem = `sysctl -n hw.memsize`.to_i / 1024 / 1024 / 4
    elsif host =~ /linux/
      cpus = `nproc`.to_i
      # meminfo shows KB and we need to convert to MB
      mem = `grep 'MemTotal' /proc/meminfo | sed -e 's/MemTotal://' -e 's/ kB//'`.to_i / 1024 / 4
    else
      cpus = `wmic cpu get NumberOfCores`.split("\n")[2].to_i
      mem = `wmic OS get TotalVisibleMemorySize`.split("\n")[2].to_i / 1024 /4
    end

    mem = mem / 1024 / 4
    mem = [mem, 2048].max # Minimum 2048

	if echoed === false
	  echoed=true
      puts("Memory", mem)
      puts("CPUs", cpus)
	end

	#v.customize ["setextradata", :id, "VBoxInternal2/SharedFoldersEnableSymlinksCreate/home_vagrant_lbry-android", "1"]
	#v.customize ["setextradata", :id, "VBoxInternal2/SharedFoldersEnableSymlinksCreate/vagrant", "1"]
    v.customize ["modifyvm", :id, "--memory", mem]
    v.customize ["modifyvm", :id, "--cpus", cpus]
  end

  config.vm.synced_folder "./", "/home/vagrant/lbry-android"


  config.vm.provision "shell", inline: <<-SHELL
    dpkg --add-architecture i386
	apt-get update
	apt-get install -y libssl-dev
	apt-get install -y python3.6 python3.6-dev python3-pip autoconf libffi-dev pkg-config libtool build-essential ccache git libncurses5:i386 libstdc++6:i386 libgtk2.0-0:i386 libpangox-1.0-0:i386 libpangoxft-1.0-0:i386 libidn11:i386 python2.7 python2.7-dev openjdk-8-jdk unzip zlib1g-dev zlib1g:i386 m4 libc6-dev-i386 python-pip
	pip install -f --upgrade setuptools pyopenssl
	git clone https://github.com/lbryio/buildozer.git
    cd buildozer
    python2.7 setup.py install
	cd ../
	rm -rf ./buildozer

	# Install additonal buildozer dependencies
	sudo apt-get install cython

	# Install node
	curl -sL https://deb.nodesource.com/setup_8.x | sudo -E bash -
	sudo apt-get install -y nodejs

	export HOME=/home/vagrant

	cp $HOME/lbry-android/buildozer.spec.vagrant $HOME/lbry-android/buildozer.spec

	mkdir -p cd $HOME/.buildozer/android/platform/
	wget -q 'https://us.crystax.net/download/crystax-ndk-10.3.2-linux-x86_64.tar.xz' -P $HOME/.buildozer/android/
	wget -q 'https://dl.google.com/android/android-sdk_r23-linux.tgz' -P $HOME/.buildozer/android/platform/
	wget -q 'https://dl.google.com/android/repository/platform-27_r01.zip' -P $HOME/.buildozer/android/platform/
	wget -q 'https://dl.google.com/android/repository/build-tools_r26.0.1-linux.zip' -P $HOME/.buildozer/android/platform/
	tar -xf ~/.buildozer/android/crystax-ndk-10.3.2-linux-x86_64.tar.xz -C $HOME/.buildozer/android/
	rm $HOME/.buildozer/android/crystax-ndk-10.3.2-linux-x86_64.tar.xz
	ln -s $HOME/.buildozer/android/crystax-ndk-10.3.2/platforms/android-21 $HOME/.buildozer/android/crystax-ndk-10.3.2/platforms/android-9
	cp -f $HOME/lbry-android/scripts/build-target-python.sh $HOME/.buildozer/android/crystax-ndk-10.3.2/build/tools/build-target-python.sh
	rm -rf $HOME/.buildozer/android/crystax-ndk-10.3.2/platforms/android-9
	tar -xf $HOME/.buildozer/android/platform/android-sdk_r23-linux.tgz -C $HOME/.buildozer/android/platform/
	rm $HOME/.buildozer/android/platform/android-sdk_r23-linux.tgz
	mv $HOME/.buildozer/android/platform/android-sdk-linux $HOME/.buildozer/android/platform/android-sdk-23
	unzip -qq $HOME/.buildozer/android/platform/android-23_r02.zip -d $HOME/.buildozer/android/platform/android-sdk-23/platforms
	rm $HOME/.buildozer/android/platform/platform-27_r01.zip
	mv $HOME/.buildozer/android/platform/android-sdk-23/platforms/android-8.1.0 $HOME/.buildozer/android/platform/android-sdk-23/platforms/android-27
	mkdir -p $HOME/.buildozer/android/platform/android-sdk-23/build-tools
	unzip -qq $HOME/.buildozer/android/platform/build-tools_r26.0.1-linux.zip -d $HOME/.buildozer/android/platform/android-sdk-23/build-tools
	rm $HOME/.buildozer/android/platform/build-tools_r26.0.1-linux.zip
	mv $HOME/.buildozer/android/platform/android-sdk-23/build-tools/android-8.0.0 $HOME/.buildozer/android/platform/android-sdk-23/build-tools/26.0.1
	mkdir -p $HOME/.buildozer/android/platform/android-sdk-23/licenses

	rm -rf $HOME/.buildozer/android/platform/android-sdk-23/tools
	#  https://dl.google.com/android/repository/sdk-tools-linux-3859397.zip
	wget -q https://dl.google.com/android/repository/tools_r25.2.5-linux.zip
	unzip -o -q ./tools_r25.2.5-linux.zip -d $HOME/.buildozer/android/platform/android-sdk-23/
	rm sdk-tools-linux-3859397.zip

	echo $'\nd56f5187479451eabf01fb78af6dfcb131a6481e' > $HOME/.buildozer/android/platform/android-sdk-23/licenses/android-sdk-license

	sudo chown -r vagrant $HOME

	echo "Installing React Native via NPM..."
	sudo npm install -g react-native-cli
  SHELL
end