37 lines
1.0 KiB
Bash
Executable File
37 lines
1.0 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
set -x
|
|
|
|
err() {
|
|
printf "[ERROR]: %s\n" "$1" >&2
|
|
exit 1
|
|
}
|
|
|
|
IMG_DIR="./builds/qemu/debian-13-64-vagrant"
|
|
if [[ ! -f "$IMG_DIR/debian-13-64-vagrant" ]]; then
|
|
err "debian-13-64-vagrant doesn't exist"
|
|
fi
|
|
|
|
cat >"$IMG_DIR/metadata.json" <<'EOF' || err "failed to write metadata.json"
|
|
{"provider":"libvirt","format":"qcow2","virtual_size":100}
|
|
EOF
|
|
|
|
cat >"$IMG_DIR/Vagrantfile" <<'EOF' || err "failed to write Vagrantfile"
|
|
Vagrant.configure("2") do |config|
|
|
config.vm.synced_folder ".", "/vagrant", type: "nfs", nfs_version: 4
|
|
end
|
|
EOF
|
|
|
|
mkdir -p ./builds/vagrant || err "failed to mkdir ./builds/vagrant"
|
|
if [[ ! -f "$IMG_DIR/box.img" ]]; then
|
|
cp -l "$IMG_DIR/debian-13-64-vagrant" "$IMG_DIR/box.img" ||
|
|
err "failed to hardlink 'debian-13-64-vagrant' to 'box.img' file"
|
|
fi
|
|
|
|
if [[ ! -f ./builds/vagrant/debian-13-64-vagrant.box ]]; then
|
|
tar -C "$IMG_DIR" -cvzf ./builds/vagrant/debian-13-64-vagrant.box \
|
|
box.img metadata.json Vagrantfile || err "failed to create .box file"
|
|
exit 0
|
|
fi
|
|
|
|
err "debian-13-64-vagrant.box already exists"
|