$script = <<SCRIPT

set -e

cat >> ~/.profile << EOF
export LANG=C
export LC_CTYPE=C
EOF

sudo apt-get update

sudo /xcsoar-host-src/ide/provisioning/install-debian-packages.sh
/xcsoar-host-src/ide/provisioning/install-android-tools.sh

sudo apt-get clean

cd
git clone --recurse-submodules -o host /xcsoar-host-src xcsoar-src
cd xcsoar-src
git remote add master https://github.com/XCSoar/XCSoar.git

SCRIPT

Vagrant.configure("2") do |config|
    config.vm.box = "generic/debian10"

    config.vm.synced_folder "../..", "/xcsoar-host-src"

    config.vm.define "XCSoarDevEnv"
    config.vm.hostname = "XCSoarDevEnv"

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

        v.name = "xcsoar-" + Time.now.strftime("%y%m%d%H%M")

        # Give VM 1/2 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 / 2

        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 / 2

        else
            cpus = 4
            mem = 2048
        end

        v.customize ["modifyvm", :id, "--memory", mem]
        v.customize ["modifyvm", :id, "--cpus", cpus]

        # Decrease VirtualBox timesync threshold to 500 ms
        v.customize ["guestproperty", "set", :id, "/VirtualBox/GuestAdd/VBoxService/--timesync-set-threshold", 500]
    end

    config.vm.provision "shell", inline: $script, privileged: false
end
