# -*- mwde: ruby -*-
# vi: set ft=ruby ff=unix expandtab ts=2 sw=2 :
# 環境変数でVM内のUSER/UID/GIDを指定(未定義ならばvagrantコマンド実行ユーザーのUSER/UID/GIDを利用)
VUSER = ENV.fetch('VUSER', `whoami`.chomp)
VUID = ENV.fetch('VUID', `id -u`.chomp)
VGID = ENV.fetch('VGID', `id -g`.chomp)
Vagrant.configure("2") do |config|
config.vm.box = "bento/fedora-39"
# マウントオプションを明示的に指定
config.vm.synced_folder ".", "/vagrant", mount_options: ["uid=#{VUID}", "gid=#{VGID}"]
config.vm.provision "shell", inline: <<-SHELL
set -x
# Vagrantfile 内で定義した変数をスクリプト内で使用
VUSER="#{VUSER}"
VUID="#{VUID}"
VGID="#{VGID}"
# 指定されたUIDとGIDを持つユーザーが存在しなければ作成
if ! getent group "$VGID"; then
groupadd -g "$VGID" "$VUSER"
fi
if ! getent passwd "$VUSER"; then
useradd -d "/home/$VUSER" -m -s /bin/bash -u "$VUID" -g "$VGID" "$VUSER"
fi
# 作成したユーザーに対してホームディレクトリに適切な権限を付与
chown -R "$VUSER":"$VUSER" "/home/$VUSER"
SHELL
end