uid = Process::UID.rid $script = <<-SCRIPT pw user add -n sparse-build -s /usr/local/bin/bash -m -u #{uid} cat - < /usr/local/etc/sudoers.d/sparse-build Defaults:sparse-build !fqdn Defaults:sparse-build !requiretty sparse-build ALL=(ALL) NOPASSWD: ALL EOD curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sudo -u sparse-build sh -s -- -y pkg install -y git cmake sudo -u sparse-build git clone https://github.com/the-tcpdump-group/libpcap /home/sparse-build/libpcap cat - < /home/sparse-build/.bashrc source /home/sparse-build/.cargo/env export SPARSE_BUILD_LIBPCAP=/home/sparse-build/libpcap EOD chown sparse-build /home/sparse-build/.bashrc cat - <<'EOD' > /usr/local/bin/sparse-build cd /vagrant exec sudo -u sparse-build bash -i -c "/home/sparse-build/.cargo/bin/cargo build --target=x86_64-unknown-freebsd -p sparse-05-server $@" EOD chmod +x /usr/local/bin/sparse-build SCRIPT Vagrant.configure("2") do |config| config.vm.box = "generic/freebsd14" config.vm.network "private_network", ip: "192.168.56.198" config.vm.provision "shell", inline: $script config.vm.synced_folder ".", "/vagrant", type: "nfs", nfs_version: 4, map_uid: uid, linux__nfs_options: ['rw'] config.vm.provider "virtualbox" do |vb| vb.memory = 8192 vb.cpus = 8 end config.vm.provider "libvirt" do |lv| lv.cpus = 8 lv.memory = 8192 end end