Skip to content

Commit

Permalink
Bump go-cli-alias to v0.0.4 (#5)
Browse files Browse the repository at this point in the history
  • Loading branch information
LinuxSuRen committed Dec 8, 2020
1 parent 66a0ecd commit c9b7813
Show file tree
Hide file tree
Showing 3 changed files with 12 additions and 63 deletions.
3 changes: 1 addition & 2 deletions go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,5 @@ go 1.15

require (
github.com/linuxsuren/cobra-extension v0.0.5
github.com/linuxsuren/go-cli-alias v0.0.4-0.20201206154634-de1c259182f2
github.com/spf13/cobra v1.1.1
github.com/linuxsuren/go-cli-alias v0.0.4
)
4 changes: 2 additions & 2 deletions go.sum
Original file line number Diff line number Diff line change
Expand Up @@ -162,8 +162,8 @@ github.com/linuxsuren/cobra-extension v0.0.3 h1:06tdJNYM4Wcx6WZPDnz/WLuP2jVdVZ9R
github.com/linuxsuren/cobra-extension v0.0.3/go.mod h1:UqHi31q7Dj+46nzcVWNZz5Z1JcHBJcmCyPAZRoM8LXo=
github.com/linuxsuren/cobra-extension v0.0.5 h1:3go926vpXiizRzBEwt8CddCDerRsG5hlIFr0JJvGaKc=
github.com/linuxsuren/cobra-extension v0.0.5/go.mod h1:qcEJv7BbL0UpK6MbrTESP/nKf1+z1wQdMAnE1NBl3QQ=
github.com/linuxsuren/go-cli-alias v0.0.4-0.20201206154634-de1c259182f2 h1:snR7lpsFgGrC+OjME/Kb/6WMbFq3Ie7V7QD2kxfUv64=
github.com/linuxsuren/go-cli-alias v0.0.4-0.20201206154634-de1c259182f2/go.mod h1:YFz8NiTvpW4664ZH3I7gLvMGnRG6GJY7F0OQ+TigmV0=
github.com/linuxsuren/go-cli-alias v0.0.4 h1:+otarDOeSZzzbTCr9CllAOQCQNpaf/HI41iDvWWUo/w=
github.com/linuxsuren/go-cli-alias v0.0.4/go.mod h1:dfwOx8H0iVpdS9gtLC80GCC4cvDvzWejxjxXn7sFWUs=
github.com/linuxsuren/go-cli-plugin v0.0.1/go.mod h1:uyO09KK8otYfDV5LVTfcWX2UbAi3kEz3PrkdfIxnDlg=
github.com/linuxsuren/http-downloader v0.0.2-0.20201207132639-19888a6beaec h1:N6xw+W4IvgOV0cmhE7iUWKHNZqMUXlT3in+1ORmqIGo=
github.com/linuxsuren/http-downloader v0.0.2-0.20201207132639-19888a6beaec/go.mod h1:zRZY9FCDBuYNDxbI2Ny5suasZsMk7J6q9ecQ3V3PIqI=
Expand Down
68 changes: 9 additions & 59 deletions main.go
Original file line number Diff line number Diff line change
@@ -1,74 +1,24 @@
package main

import (
"context"
"fmt"
ext "github.com/linuxsuren/cobra-extension"
extver "github.com/linuxsuren/cobra-extension/version"
alias "github.com/linuxsuren/go-cli-alias/pkg"
aliasCmd "github.com/linuxsuren/go-cli-alias/pkg/cmd"
"github.com/spf13/cobra"
"os"
"os/exec"
"strings"
"syscall"
)

func main() {
cmd := &cobra.Command{
Use: "ks",
RunE: func(cmd *cobra.Command, args []string) (err error) {
env := os.Environ()

var gitBinary string
if gitBinary, err = exec.LookPath("kubectl"); err == nil {
syscall.Exec(gitBinary, append([]string{"kubectl"}, args...), env)
}
return
},
}
const (
TargetCLI = "kubectl"
AliasCLI = "ks"
)

cmd.AddCommand(extver.NewVersionCmd("linuxsuren", "ks", "ks", nil))
func main() {
cmd := aliasCmd.CreateDefaultCmd(TargetCLI, AliasCLI)

var ctx context.Context
if defMgr, err := alias.GetDefaultAliasMgrWithNameAndInitialData(cmd.Name(), getDefault()); err == nil {
ctx = context.WithValue(context.Background(), alias.AliasKey, defMgr)
cmd.AddCommand(extver.NewVersionCmd("linuxsuren", AliasCLI, AliasCLI, nil))

cmd.AddCommand(aliasCmd.NewRootCommand(ctx))
aliasCmd.RegisterAliasCompletion(ctx, cmd)
} else {
cmd.Println(fmt.Errorf("cannot get default alias manager, error: %v", err))
}
aliasCmd.AddAliasCmd(cmd, getDefault())

cmd.AddCommand(ext.NewCompletionCmd(cmd))

cmd.SilenceErrors = true
err := cmd.Execute()
if err != nil && strings.Contains(err.Error(), "unknown command") {
args := os.Args[1:]
var ctx context.Context
var defMgr *alias.DefaultAliasManager
var err error
if defMgr, err = alias.GetDefaultAliasMgrWithNameAndInitialData(cmd.Name(), getDefault()); err == nil {
ctx = context.WithValue(context.Background(), alias.AliasKey, defMgr)
var gitBinary string
var targetCmd []string
env := os.Environ()

if gitBinary, err = exec.LookPath("kubectl"); err != nil {
panic("cannot find kubectl")
}

if ok, redirect := aliasCmd.RedirectToAlias(ctx, args); ok {
targetCmd = append([]string{"kubectl"}, redirect...)

//fmt.Println("the real command is:", strings.Join(targetCmd, " "))
} else {
targetCmd = append([]string{"kubectl"}, args...)
}
_ = syscall.Exec(gitBinary, targetCmd, env) // ignore the errors due to we've no power to deal with it
} else {
err = fmt.Errorf("cannot get default alias manager, error: %v", err)
}
}
aliasCmd.Execute(cmd, TargetCLI, getDefault(), nil)
}

0 comments on commit c9b7813

Please sign in to comment.