function dev set -l name dev set -l image fedora:44 set -l packages \ git \ gcc \ gcc-c++ \ make \ pkg-config \ openssl-devel \ clang \ llvm \ cmake \ lld \ gdb \ strace \ curl \ which \ file \ jq \ zoxide \ fzf \ eza \ ripgrep \ du-dust \ tldr \ cheat \ pv \ age if distrobox list --no-color | string match -q "*| $name *" distrobox enter $name return end echo "Creating Distrobox container '$name'..." set -l init_hook ' set -e echo "Initializing development environment..." sudo mkdir -p /opt/rustup /opt/cargo sudo chown -R $USER:$USER /opt/rustup /opt/cargo sudo mkdir -p /etc/fish/conf.d /etc/fish/completions printf "%s\n" \ "set -gx RUSTUP_HOME /opt/rustup" \ "set -gx CARGO_HOME /opt/cargo" \ "fish_add_path \$CARGO_HOME/bin /home/user/.local/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 /opt/cargo/bin/rustup default stable /opt/cargo/bin/rustup completions fish \ | sudo tee /etc/fish/completions/rustup.fish >/dev/null echo "Development environment initialized successfully." ' distrobox create \ --name $name \ --image $image --yes \ --additional-packages (string join ' ' $packages) \ --init-hooks "$init_hook" if test $status -ne 0 echo "Failed to create container '$name'." >&2 return 1 end distrobox enter $name end