Skip to content

Conversation

@gaelicWizard
Copy link
Contributor

@gaelicWizard gaelicWizard commented Jan 26, 2022

Description

Many plugins/completions/whatever check if their associated command is already installed before loading. Find, fix, and add in/to all the completions to ensure consistency and improve bash-it doctor.

Since completions are such a focused set of functions, create some helpers to simplify.

Motivation and Context

The _command_exist() (et al) functions were all weird due to having logging shoved in sideways, which was neither informative nor used anywhere. This pulls the logging from the utility functions and adds it to the relevant call sites, as well as adding to several other plugins that could use it.

In particular, some completions or some plugins may be useless but harmless if their associated command is not installed. I've opted to add logging, but not to force an early short-circuit. For example, I've made improvements to a lot of the completions code recently, but I don't have all the relevant tools installed. I load the completion and can test it out anyway, so I don't want to unnecessarily short-circuit it.

The result of all this should be a more reasonable output when $BASH_IT_LOG_LEVEL is set, and from bash-it doctor, as well as avoid polluting theme variables that check for installed utilities.

How Has This Been Tested?

Types of changes

  • Enhancement (non-breaking change which makes things better)

Checklist:

  • My code follows the code style of this project.
  • If my change requires a change to the documentation, I have updated the documentation accordingly.
  • I have read the CONTRIBUTING document.
  • If I have added a new file, I also added it to clean_files.txt and formatted it using lint_clean_files.sh.
  • I have added tests to cover my changes, and all the new and existing tests pass.

@gaelicWizard gaelicWizard marked this pull request as ready for review January 26, 2022 06:30
@gaelicWizard gaelicWizard force-pushed the lib/completion/components branch 6 times, most recently from c319aa2 to d119871 Compare January 31, 2022 00:28
@gaelicWizard gaelicWizard force-pushed the lib/completion/components branch from d119871 to 1c2b0bc Compare February 23, 2022 23:54
@seefood
Copy link
Contributor

seefood commented Nov 7, 2024

Howdie! please merge from master and resolve conflicts so we can move it to review :)

@seefood seefood self-assigned this Nov 7, 2024
@seefood seefood added clean up seems abandoned rattle the cage, and close if nobody wants to keep it going waiting-for-response labels Nov 7, 2024
@seefood seefood marked this pull request as draft December 28, 2024 19:33
@seefood seefood marked this pull request as ready for review August 23, 2025 19:04
@seefood seefood merged commit a56a7a2 into Bash-it:master Aug 24, 2025
5 of 6 checks passed
OPTS=$(dmidecode "$prev" 2>&1 | grep -E '^ ' | sed 's/ *//g')
# shellcheck disable=SC2207
COMPREPLY=($(compgen -W "$OPTS" -- "$curr"))
COMPREPLY=("${OPTS[@]}")
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is this correct? The assignment to OPTS is performed with the scalar form OPTS=$(...).

Also, I think OPTS should be localized within this function.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

clean up seems abandoned rattle the cage, and close if nobody wants to keep it going waiting-for-response

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants