mirror of
				https://gitea.com/Lydanne/buildx.git
				synced 2025-10-31 16:13:45 +08:00 
			
		
		
		
	bake: add completion to list targets
Signed-off-by: CrazyMax <crazy-max@users.noreply.github.com>
This commit is contained in:
		| @@ -1,6 +1,9 @@ | ||||
| package completion | ||||
|  | ||||
| import ( | ||||
| 	"strings" | ||||
|  | ||||
| 	"github.com/docker/buildx/bake" | ||||
| 	"github.com/spf13/cobra" | ||||
| ) | ||||
|  | ||||
| @@ -10,3 +13,26 @@ type ValidArgsFn func(cmd *cobra.Command, args []string, toComplete string) ([]s | ||||
| func Disable(cmd *cobra.Command, args []string, toComplete string) ([]string, cobra.ShellCompDirective) { | ||||
| 	return nil, cobra.ShellCompDirectiveNoSpace | ||||
| } | ||||
|  | ||||
| func BakeTargets(files []string) ValidArgsFn { | ||||
| 	return func(cmd *cobra.Command, args []string, toComplete string) ([]string, cobra.ShellCompDirective) { | ||||
| 		f, err := bake.ReadLocalFiles(files) | ||||
| 		if err != nil { | ||||
| 			return nil, cobra.ShellCompDirectiveError | ||||
| 		} | ||||
| 		tgts, err := bake.ListTargets(f) | ||||
| 		if err != nil { | ||||
| 			return nil, cobra.ShellCompDirectiveError | ||||
| 		} | ||||
| 		var filtered []string | ||||
| 		if toComplete == "" { | ||||
| 			return tgts, cobra.ShellCompDirectiveNoFileComp | ||||
| 		} | ||||
| 		for _, tgt := range tgts { | ||||
| 			if strings.HasPrefix(tgt, toComplete) { | ||||
| 				filtered = append(filtered, tgt) | ||||
| 			} | ||||
| 		} | ||||
| 		return filtered, cobra.ShellCompDirectiveNoFileComp | ||||
| 	} | ||||
| } | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 CrazyMax
					CrazyMax