You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
cointop/cmd/commands/server.go

47 lines
1.3 KiB
Go

//+build !windows
package cmd
import (
"fmt"
"time"
cssh "github.com/miguelmota/cointop/pkg/ssh"
"github.com/spf13/cobra"
)
// ServerCmd ...
func ServerCmd() *cobra.Command {
var port uint = 22
var address string = "0.0.0.0"
var idleTimeout uint = 60
var executableBinary string = "cointop"
var hostKeyFile string = cssh.DefaultHostKeyFile
serverCmd := &cobra.Command{
Use: "server",
Short: "Run cintop SSH Server",
Long: `Run cointop SSH server`,
RunE: func(cmd *cobra.Command, args []string) error {
server := cssh.NewServer(&cssh.Config{
Address: address,
Port: port,
IdleTimeout: time.Duration(int(idleTimeout)) * time.Second,
ExecutableBinary: executableBinary,
HostKeyFile: hostKeyFile,
})
fmt.Printf("Running SSH server on port %v\n", port)
return server.ListenAndServe()
},
}
serverCmd.Flags().UintVarP(&port, "port", "p", port, "Port")
serverCmd.Flags().StringVarP(&address, "address", "a", address, "Address")
serverCmd.Flags().UintVarP(&idleTimeout, "idle-timeout", "t", idleTimeout, "Idle timeout in seconds")
serverCmd.Flags().StringVarP(&executableBinary, "binary", "b", executableBinary, "Executable binary path")
serverCmd.Flags().StringVarP(&hostKeyFile, "host-key-file", "k", hostKeyFile, "Host key file")
return serverCmd
}