devenv/run.sh

48 lines
1.2 KiB
Bash
Raw Normal View History

2025-07-26 00:04:42 +10:00
#!/bin/bash
docker_run() {
2025-08-16 02:10:04 +00:00
# If the auth sock is empty just mount random shit I dont fucking care.
[ -z "$SSH_AUTH_SOCK" ] && SSH_AUTH_SOCK=$(mktemp)
# Allow docker to forward some x shit.
2025-07-26 00:04:42 +10:00
xhost +local:docker
2025-08-16 02:10:04 +00:00
# Run the devenv
2025-07-26 00:04:42 +10:00
docker run -it --rm \
-u "${UID}:${GID}" \
2025-08-16 02:10:04 +00:00
-v ~/.bashrc:/home/x/.bashrc \
-v ~/.kube:/home/x/.kube \
2025-08-16 02:10:04 +00:00
-v ~/.ssh:/home/x/.ssh \
-v ${SSH_AUTH_SOCK}:/run/user/${UID}/ssh-agent.socket \
-v ~/.gitconfig:/home/x/.gitconfig \
-v ~/.config/git:/home/x/.config/git \
-v $HOME/Projects:/home/x/Projects \
-v $HOME/Scripts:/home/x/Scripts \
2025-07-26 00:04:42 +10:00
-v ${HOME}/.Xauthority:/home/x/.Xauthority \
2025-08-16 02:10:04 +00:00
-v /tmp/.X11-unix:/tmp/.X11-unix \
2025-07-26 00:04:42 +10:00
-e DISPLAY=${DISPLAY} \
--device /dev/dri \
--group-add video \
-v /var/run/docker.sock:/var/run/docker.sock \
--entrypoint /usr/bin/tmux \
d:${1}
}
docker_build() {
2025-08-16 02:10:04 +00:00
# --network=host prevent stupid docker shit breaking yay
if [ $1 == "base" ] ; then
docker build --network=host ./${1} -t d:${1}
else
# Need base installed first dur
docker build --network=host ./base -t d:base
docker build --network=host ./${1} -t d:${1}
fi
2025-07-26 00:04:42 +10:00
}
case "$1" in
*)
docker_build $1 && docker_run $1
;;
esac