summaryrefslogtreecommitdiff
path: root/main.go
diff options
context:
space:
mode:
authorzyp <zhou.youpeng@foxmail.com>2023-12-18 11:25:01 +0800
committerzyp <zhou.youpeng@foxmail.com>2023-12-18 11:25:01 +0800
commit2e975c8e9c4c5182acace2d37395fc904de0db66 (patch)
treedfa53b1f2d391d0f874e950b364617d57d58b964 /main.go
parent47f55176197faed69f94c9aafb356302d7c0e420 (diff)
feat: add ssh tty
Diffstat (limited to 'main.go')
-rw-r--r--main.go18
1 files changed, 13 insertions, 5 deletions
diff --git a/main.go b/main.go
index 9243273..fe8f75f 100644
--- a/main.go
+++ b/main.go
@@ -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)