Archived
1

first commit

This commit is contained in:
2024-12-23 01:55:48 +03:00
commit b514cc36fb
33 changed files with 1969 additions and 0 deletions

63
cmd/utils.go Normal file
View File

@@ -0,0 +1,63 @@
package cmd
import (
"fmt"
"github.com/spf13/cobra"
"os"
"path/filepath"
"playbookctl/internal/types"
)
func ArgRoleCompletion(_ *cobra.Command, _ []string, toComplete string) ([]string, cobra.ShellCompDirective) {
exitApp := func(err error) {
fmt.Println(err)
os.Exit(1)
}
var suggestions []string
workDir, err := filepath.Abs(flagWorkdir)
if err != nil {
exitApp(err)
}
playbook, err := types.ReadPlaybook(workDir)
if err != nil {
exitApp(err)
}
for _, role := range playbook.Roles {
if toComplete == "" || len(role) >= len(toComplete) && role[:len(toComplete)] == toComplete {
suggestions = append(suggestions, role)
}
}
return suggestions, cobra.ShellCompDirectiveDefault
}
func ArgHostCompletion(_ *cobra.Command, _ []string, toComplete string) ([]string, cobra.ShellCompDirective) {
exitApp := func(err error) {
fmt.Println(err)
os.Exit(1)
}
var suggestions []string
workDir, err := filepath.Abs(flagWorkdir)
if err != nil {
exitApp(err)
}
hosts, err := types.ReadHosts(workDir)
if err != nil {
exitApp(err)
}
for host := range *hosts {
if toComplete == "" || len(host) >= len(toComplete) && host[:len(toComplete)] == toComplete {
suggestions = append(suggestions, host)
}
}
return suggestions, cobra.ShellCompDirectiveDefault
}