aboutsummaryrefslogtreecommitdiff
path: root/initappc.go
diff options
context:
space:
mode:
Diffstat (limited to 'initappc.go')
-rw-r--r--initappc.go66
1 files changed, 66 insertions, 0 deletions
diff --git a/initappc.go b/initappc.go
new file mode 100644
index 0000000..bd04198
--- /dev/null
+++ b/initappc.go
@@ -0,0 +1,66 @@
+package main
+
+import (
+ "flag"
+ "fmt"
+ "gopher-scan/sshpakg"
+ "os"
+
+ "github.com/lxn/walk"
+ "github.com/lxn/walk/declarative"
+)
+
+func main() {
+ if len(os.Args) <= 1 {
+ startMainGUIWindows()
+ return
+ }
+ // So ... seems walk package dose not support console windows,
+ // obviously this is not the best way to call another console for ssh client
+ // but this is the only way that i could think of ... let me know if you find better way to do this.
+ sshCodeAuth := flag.String("auth", "1", "ssh auth type")
+ sshHostAddr := flag.String("addr", "127.0.0.1:22", "ssh remote host")
+ sshUserName := flag.String("user", "root", "ssh username")
+ sshPassWord := flag.String("pass", "toor", "ssh password")
+ sshPrivateK := flag.String("prvk", "pkey.pem", "ssh private key")
+ sshPkPassPH := flag.String("prph", "123", "ssh key passphrase")
+ flag.Parse()
+ var winSSHcli *walk.MainWindow
+ sshExecute := declarative.MainWindow{
+ AssignTo: &winSSHcli,
+ Visible: false,
+ }
+ go sshExecute.Run()
+ switch *sshCodeAuth {
+ case "1":
+ conn, err := sshpakg.DialWithPasswd(*sshHostAddr, *sshUserName, *sshPassWord)
+ if err != nil {
+ walk.MsgBox(winSSHcli, "Connection error", fmt.Sprintf("%v", err), walk.MsgBoxIconError)
+ return
+ }
+ if err := sshpakg.InitSSHSession(conn); err != nil {
+ walk.MsgBox(winSSHcli, "Connection error", fmt.Sprintf("%v", err), walk.MsgBoxIconError)
+ return
+ }
+ case "2":
+ conn, err := sshpakg.DialWithKey(*sshHostAddr, *sshUserName, *sshPrivateK)
+ if err != nil {
+ walk.MsgBox(winSSHcli, "Connection error", fmt.Sprintf("%v", err), walk.MsgBoxIconError)
+ return
+ }
+ if err := sshpakg.InitSSHSession(conn); err != nil {
+ walk.MsgBox(winSSHcli, "Connection error", fmt.Sprintf("%v", err), walk.MsgBoxIconError)
+ return
+ }
+ case "3":
+ conn, err := sshpakg.DialWithKeyWithPassphrase(*sshHostAddr, *sshUserName, *sshPrivateK, *sshPkPassPH)
+ if err != nil {
+ walk.MsgBox(winSSHcli, "Connection error", fmt.Sprintf("%v", err), walk.MsgBoxIconError)
+ return
+ }
+ if err := sshpakg.InitSSHSession(conn); err != nil {
+ walk.MsgBox(winSSHcli, "Connection error", fmt.Sprintf("%v", err), walk.MsgBoxIconError)
+ return
+ }
+ }
+}

Snix LLC Git Repository Holder Copyright(C) 2022 All Rights Reserved Email To Snix.IR