Files
arca/cmd/completion.go
Kyle Isom e44dd382dd M6: shell completions with dynamic alias lookup
Add ValidArgsFunction to mount and unmount commands that reads config
aliases for tab completion. Install zsh, bash, and fish completion
scripts via flake postInstall. Update PLAN.md with post-1.0 roadmap.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-24 08:35:19 -07:00

26 lines
627 B
Go

package cmd
import (
"sort"
"git.wntrmute.dev/kyle/arca/internal/config"
"github.com/spf13/cobra"
)
// completeDeviceOrAlias provides dynamic completion for device aliases
// and device paths from the config file.
func completeDeviceOrAlias(cmd *cobra.Command, args []string, toComplete string) ([]string, cobra.ShellCompDirective) {
if len(args) > 0 {
return nil, cobra.ShellCompDirectiveNoFileComp
}
cfg := config.Load()
var completions []string
for alias := range cfg.Devices {
completions = append(completions, alias)
}
sort.Strings(completions)
return completions, cobra.ShellCompDirectiveNoFileComp
}