mirror of
https://github.com/edgelesssys/constellation.git
synced 2024-12-24 06:59:40 -05:00
bazel: add Bazel shell completion scripts (#1804)
* add bazel autocomplete script * indentation * shfmt * shellcheck ignore completion file * fix shellcheck ignore path
This commit is contained in:
parent
dc9b3c1937
commit
339e750c18
15102
bazel/bazel-complete.bash
Executable file
15102
bazel/bazel-complete.bash
Executable file
File diff suppressed because it is too large
Load Diff
@ -30,7 +30,11 @@ excludeDirs=(
|
||||
"docs/node_modules"
|
||||
)
|
||||
|
||||
echo "The following scripts are excluded and won't be linted with shellcheck:"
|
||||
excludeFiles=(
|
||||
"bazel/bazel-complete.bash"
|
||||
)
|
||||
|
||||
echo "The following scripts are excluded by their directory and won't be linted with shellcheck:"
|
||||
for exclude in "${excludeDirs[@]}"; do
|
||||
for i in "${!scripts[@]}"; do
|
||||
if [[ ${scripts[i]} == "${BUILD_WORKSPACE_DIRECTORY}/${exclude}"* ]]; then
|
||||
@ -40,6 +44,16 @@ for exclude in "${excludeDirs[@]}"; do
|
||||
done
|
||||
done
|
||||
|
||||
echo "The following scripts are excluded and won't be linted with shellcheck:"
|
||||
for exclude in "${excludeFiles[@]}"; do
|
||||
for i in "${!scripts[@]}"; do
|
||||
if [[ ${scripts[i]} == "${BUILD_WORKSPACE_DIRECTORY}/${exclude}" ]]; then
|
||||
echo " ${scripts[i]}"
|
||||
unset 'scripts[i]'
|
||||
fi
|
||||
done
|
||||
done
|
||||
|
||||
echo "Linting the following scripts with shellcheck:"
|
||||
for script in "${scripts[@]}"; do
|
||||
echo " ${script}"
|
||||
|
@ -167,6 +167,44 @@ Whenever Go code is changed, you will have to run `bazel run //:tidy` to regener
|
||||
You can continue to use the default Go language server and editor integration. This will show you different paths for external dependencies and not use the Bazel cache.
|
||||
Alternatively, you can use [the go language server integration for Bazel](https://github.com/bazelbuild/rules_go/wiki/Editor-setup). This will use Bazel for dependency resolution and execute Bazel commands for building and testing.
|
||||
|
||||
## Command-line completion
|
||||
|
||||
[CLI completion for Bazel](https://bazel.build/install/completion) is available for Bash and zsh.
|
||||
|
||||
### Bash
|
||||
|
||||
When installing Bazel through the APT repository or Homebrew, completion scripts for bash should be installed automatically.
|
||||
|
||||
When building from source, you can install the completion script by adding the following line to your `~/.bashrc`:
|
||||
|
||||
```bash
|
||||
source <path-to-constellation-repo>/bazel/bazel-complete.bash
|
||||
```
|
||||
|
||||
### Zsh
|
||||
|
||||
When installing Bazel through the APT repository or Homebrew, completion scripts for zsh should be installed automatically. When using a heavily customized zsh config, you may need to follow [this workaround](https://bazel.build/install/completion).
|
||||
|
||||
When using Oh-My-Zsh, you can simply enable the [`zsh-autocomplete`](https://github.com/marlonrichert/zsh-autocomplete) plugin.
|
||||
|
||||
When building from source and not using Oh-My-Zsh, you can install the completion script as follows:
|
||||
|
||||
1. Locate the completion file, per default, it is located in `$HOME/.bazel/bin`
|
||||
2. Add a file with the following to your `$fpath`
|
||||
```zsh
|
||||
fpath[1,0]=~/.zsh/completion/
|
||||
mkdir -p ~/.zsh/completion/
|
||||
cp /path/from/above/step/_bazel ~/.zsh/completion
|
||||
```
|
||||
3. When installing for the first time, you may need to run `rm -f ~/.zcompdump; compinit` to rebuild the completion cache.
|
||||
4. (Optional) Add the following to your `.zshrc`
|
||||
```zsh
|
||||
# This way the completion script does not have to parse Bazel's options
|
||||
# repeatedly. The directory in cache-path must be created manually.
|
||||
zstyle ':completion:*' use-cache on
|
||||
zstyle ':completion:*' cache-path ~/.zsh/cache
|
||||
```
|
||||
|
||||
# Image export
|
||||
|
||||
To download an image you will have to export it first.
|
||||
|
Loading…
Reference in New Issue
Block a user