Skip to content

Commit 5472fdc

Browse files
committed
Add shell completion to bash
1 parent dfdaa53 commit 5472fdc

File tree

1 file changed

+39
-1
lines changed
  • shared/services/rocketpool/assets/scripts

1 file changed

+39
-1
lines changed

shared/services/rocketpool/assets/scripts/install.sh

Lines changed: 39 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@ fi
4747

4848

4949
# The total number of steps in the installation process
50-
TOTAL_STEPS="8"
50+
TOTAL_STEPS="9"
5151
# The Rocket Pool user data path
5252
RP_PATH="$HOME/.rocketpool"
5353
# The default network to run Rocket Pool on
@@ -422,6 +422,44 @@ progress 7 "Copying package files to Rocket Pool user data directory..."
422422
# Clean up unnecessary files from old installations
423423
progress 8 "Cleaning up obsolete files from previous installs..."
424424
{ rm -rf "$DATA_PATH/fr-default" || echo "NOTE: Could not remove '$DATA_PATH/fr-default' which is no longer needed."; } >&2
425+
426+
# Install shell completion for rocketpool CLI
427+
progress 9 "Installing shell completion for rocketpool CLI..."
428+
429+
if command -v rocketpool >/dev/null 2>&1; then
430+
COMPLETION_SCRIPT=$(rocketpool completion bash 2>/dev/null)
431+
if [ -n "$COMPLETION_SCRIPT" ]; then
432+
mkdir -p ~/.bash_completion.d 2>/dev/null || true
433+
echo "$COMPLETION_SCRIPT" > ~/.bash_completion.d/rocketpool
434+
chmod 644 ~/.bash_completion.d/rocketpool
435+
436+
# Automatically add sourcing to ~/.bashrc if not already present
437+
BASHRC="$HOME/.bashrc"
438+
COMPLETION_SOURCE='[[ -r ~/.bash_completion.d/rocketpool ]] && source ~/.bash_completion.d/rocketpool'
439+
440+
if [ -f "$BASHRC" ]; then
441+
if ! grep -q "bash_completion.d/rocketpool" "$BASHRC"; then
442+
echo "" >> "$BASHRC"
443+
echo "# Rocket Pool CLI shell completion" >> "$BASHRC"
444+
echo "$COMPLETION_SOURCE" >> "$BASHRC"
445+
echo "Added shell completion sourcing to $BASHRC"
446+
else
447+
echo "Shell completion already configured in $BASHRC"
448+
fi
449+
else
450+
# Create .bashrc if it doesn't exist
451+
echo "# Rocket Pool CLI shell completion" > "$BASHRC"
452+
echo "$COMPLETION_SOURCE" >> "$BASHRC"
453+
echo "Created $BASHRC with shell completion"
454+
fi
455+
456+
echo "Shell completion installed and configured. Restart your shell or run: source ~/.bash_completion.d/rocketpool"
457+
else
458+
echo "NOTE: Could not generate completion script." >&2
459+
fi
460+
else
461+
echo "NOTE: rocketpool command not found in PATH, skipping shell completion install." >&2
462+
fi
425463
GRAFFITI_OWNER=$(stat -c "%U" $RP_PATH/addons/gww/graffiti.txt)
426464
if [ "$GRAFFITI_OWNER" = "$USER" ]; then
427465
{ rm -f "$RP_PATH/addons/gww/graffiti.txt" || echo -e "${COLOR_YELLOW}WARNING: Could not remove '$RP_PATH/addons/gww/graffiti.txt' which was used by the Graffiti Wall Writer addon. You will need to remove this file manually if you intend to use the Graffiti Wall Writer.${COLOR_RESET}"; } >&2

0 commit comments

Comments
 (0)