diff options
| author | zyp <zhou.youpeng@foxmail.com> | 2023-12-18 11:25:01 +0800 |
|---|---|---|
| committer | zyp <zhou.youpeng@foxmail.com> | 2023-12-18 11:25:01 +0800 |
| commit | 2e975c8e9c4c5182acace2d37395fc904de0db66 (patch) | |
| tree | dfa53b1f2d391d0f874e950b364617d57d58b964 /main.go | |
| parent | 47f55176197faed69f94c9aafb356302d7c0e420 (diff) | |
feat: add ssh tty
Diffstat (limited to 'main.go')
| -rw-r--r-- | main.go | 18 |
1 files changed, 13 insertions, 5 deletions
@@ -4,17 +4,19 @@ import ( "bufio" "encoding/base64" "fmt" - "github.com/gdamore/tcell/v2" - "github.com/jba/slog/handlers/loghandler" - "golang.org/x/exp/slog" "io" "log" "os" "strings" "time" - "github.com/spf13/cobra" + "github.com/gdamore/tcell/v2" + "github.com/jba/slog/handlers/loghandler" + "golang.org/x/exp/slog" + "runtime/debug" + + "github.com/spf13/cobra" ) var ( @@ -23,6 +25,7 @@ var ( isScreen bool verboseFlag bool logfileFlag string + deviceFlag string ) func encode(fname string, encoder io.WriteCloser) { @@ -45,7 +48,7 @@ func encode(fname string, encoder io.WriteCloser) { } func opentty() (tty tcell.Tty, err error) { - tty, err = tcell.NewDevTty() + tty, err = tcell.NewDevTtyFromDev(deviceFlag) if err == nil { err = tty.Start() } @@ -286,6 +289,11 @@ var rootCmd = &cobra.Command{ func init() { rootCmd.PersistentFlags().BoolVarP(&verboseFlag, "verbose", "v", false, "verbose logging") rootCmd.PersistentFlags().StringVarP(&logfileFlag, "log", "l", "", "write logs to file") + rootCmd.PersistentFlags().StringVarP(&deviceFlag, "device", "d", os.Getenv("SSH_TTY"), "device") + + if deviceFlag == "" { + deviceFlag = os.Getenv("/dev/tty") + } rootCmd.AddCommand(copyCmd) rootCmd.AddCommand(pasteCmd) |
