Skip to content

Commit 3f01556

Browse files
committed
move bootstrap scripts to container
1 parent 81acc5e commit 3f01556

File tree

2 files changed

+41
-32
lines changed

2 files changed

+41
-32
lines changed

.devcontainer/Dockerfile

Lines changed: 41 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ USER $DEVBOX_USER
1111

1212
RUN wget --output-document=/dev/stdout https://nixos.org/nix/install | sh -s -- --no-daemon
1313
RUN . ~/.nix-profile/etc/profile.d/nix.sh
14-
ENV PATH="/home/${DEVBOX_USER}/.nix-profile/bin:$PATH"
14+
ENV PATH="/home/${DEVBOX_USER}/.local/bin:/home/${DEVBOX_USER}/.nix-profile/bin:$PATH"
1515
ENV HM_FLAKE_URI=github:Ramblurr/nix-agent-dev
1616
WORKDIR /code
1717
USER root:root
@@ -20,6 +20,46 @@ USER ${DEVBOX_USER}:${DEVBOX_USER}
2020
ENV USER=${DEVBOX_USER}
2121
ENV NIX_CONFIG="experimental-features = nix-command flakes"
2222
COPY --chown=${DEVBOX_USER}:${DEVBOX_USER} . /home/${DEVBOX_USER}/.config/home-manager
23+
ENV PATH="/home/${DEVBOX_USER}/.local/bin:/home/${DEVBOX_USER}/.nix-profile/bin:$PATH"
24+
RUN mkdir -p /home/${DEVBOX_USER}/.local/bin/ && cat > /home/${DEVBOX_USER}/.local/bin/home-manager-update << 'EOF'
25+
#!/usr/bin/env bash
26+
set -euo pipefail
27+
cd ~/.config/home-manager
28+
git fetch origin
29+
git reset --hard origin/main
30+
if command -v home-manager &> /dev/null; then
31+
home-manager switch --impure -b backup
32+
else
33+
nix run github:nix-community/home-manager -- switch --impure -b backup
34+
fi
35+
EOF
36+
37+
RUN cat > /home/${DEVBOX_USER}/.local/bin/dev-env-start << 'EOF'
38+
#!/usr/bin/env bash
39+
set -euo pipefail
40+
home-manager-update
41+
if [ -n "${WORKSPACE_FOLDER:-}" ]; then
42+
cd "$WORKSPACE_FOLDER"
43+
nix develop --command -- echo "Start hook: Prepared env for $WORKSPACE_FOLDER"
44+
fi
45+
EOF
46+
47+
RUN cat > /home/${DEVBOX_USER}/.local/bin/dev-env-poststart << 'EOF'
48+
#!/usr/bin/env bash
49+
set -euo pipefail
50+
home-manager-update
51+
if [ -n "${WORKSPACE_FOLDER:-}" ]; then
52+
cd "$WORKSPACE_FOLDER"
53+
nix develop --command -- echo "Post start hook: Prepared env for $WORKSPACE_FOLDER"
54+
fi
55+
EOF
56+
57+
RUN mkdir -p /home/${DEVBOX_USER}/.local/bin \
58+
&& chmod +x /home/${DEVBOX_USER}/.local/bin/home-manager-update \
59+
&& chmod +x /home/${DEVBOX_USER}/.local/bin/dev-env-start \
60+
&& chmod +x /home/${DEVBOX_USER}/.local/bin/dev-env-poststart \
61+
&& chown -R ${DEVBOX_USER}:${DEVBOX_USER} /home/${DEVBOX_USER}/.local
62+
2363
RUN set -x && ls -alh /home/${DEVBOX_USER}/.config/home-manager && mkdir -p /home/${DEVBOX_USER}/.config/nix \
2464
&& echo "experimental-features = nix-command flakes" > /home/${DEVBOX_USER}/.config/nix/nix.conf \
2565
&& nix-store --gc \

config/home.nix

Lines changed: 0 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -47,37 +47,6 @@
4747
tmux
4848
babashka
4949
clojure
50-
(pkgs.writeScriptBin "home-manager-update" ''
51-
#!/usr/bin/env bash
52-
set -euo pipefail
53-
cd ~/.config/home-manager
54-
git fetch origin
55-
git reset --hard origin/main
56-
if command -v home-manager &> /dev/null; then
57-
home-manager switch --impure -b backup
58-
else
59-
nix run github:nix-community/home-manager -- switch --impure -b backup
60-
fi
61-
'')
62-
(pkgs.writeScriptBin "dev-env-start" ''
63-
#!/usr/bin/env bash
64-
set -euo pipefail
65-
home-manager-update
66-
if [ -n "''${WORKSPACE_FOLDER:-}" ]; then
67-
cd "$WORKSPACE_FOLDER"
68-
nix develop --command -- echo "Start hook: Prepared env for $WORKSPACE_FOLDER"
69-
fi
70-
'')
71-
(pkgs.writeScriptBin "dev-env-poststart" ''
72-
#!/usr/bin/env bash
73-
set -euo pipefail
74-
home-manager-update
75-
if [ -n "''${WORKSPACE_FOLDER:-}" ]; then
76-
cd "$WORKSPACE_FOLDER"
77-
nix develop
78-
nix develop --command -- echo "Post start hook: Prepared env for $WORKSPACE_FOLDER"
79-
fi
80-
'')
8150
(pkgs.writeScriptBin "run-clojure-mcp" ''
8251
#!/usr/bin/env bash
8352
set -euo pipefail

0 commit comments

Comments
 (0)