fish dev function

This commit is contained in:
2026-09-14 07:35:11 +02:00
parent 09437f0c08
commit 083f8dd16c
2 changed files with 67 additions and 0 deletions
@@ -0,0 +1,67 @@
function dev
set -l name dev
set -l image fedora:44
# Packages for a general-purpose development environment.
set -l packages \
git \
gcc \
gcc-c++ \
make \
pkg-config \
openssl-devel \
clang \
llvm \
cmake \
lld \
gdb \
strace \
curl \
which \
file \
jq
if distrobox list --no-color | string match -q "*| $name *"
distrobox enter $name
return
end
echo "Creating Distrobox container '$name'..."
distrobox create \
--name $name \
--image $image --yes \
--additional-packages (string join ' ' $packages) \
--init-hooks '
sudo mkdir -p /opt/rustup /opt/cargo
sudo chown -R $USER:$USER /opt/rustup /opt/cargo
sudo mkdir -p /etc/fish/conf.d
printf "%s\n" \
"set -gx RUSTUP_HOME /opt/rustup" \
"set -gx CARGO_HOME /opt/cargo" \
"fish_add_path \$CARGO_HOME/bin" \
| sudo tee /etc/fish/conf.d/rust.fish >/dev/null
export RUSTUP_HOME=/opt/rustup
export CARGO_HOME=/opt/cargo
curl --proto "=https" \
--tlsv1.2 \
-sSf https://sh.rustup.rs \
| sh -s -- -y --no-modify-path
# Install rustup Fish completion system-wide.
mkdir -p /etc/fish/completions
/opt/cargo/bin/rustup completions fish \
| sudo tee /etc/fish/completions/rustup.fish >/dev/null
'
if test $status -ne 0
echo "Failed to create container '$name'." >&2
return 1
end
distrobox enter $name
end