From 35beb19c2d1df3f469504e7852ccf314a18015c2 Mon Sep 17 00:00:00 2001
From: Erik Brakkee <erik@brakkee.org>
Date: Mon, 26 Aug 2024 10:05:07 +0200
Subject: [PATCH] moved ssh code to separate pacakge.

---
 cmd/agent/agent.go                                 | 14 ++++++--------
 .../agent/service}/activitydetector.go             |  2 +-
 pkg/agent/service/service.go                       |  1 -
 .../agent/service}/sshauthorizedkeys.go            |  2 +-
 {cmd/agent => pkg/agent/service}/sshservice.go     | 11 ++++++++++-
 5 files changed, 18 insertions(+), 12 deletions(-)
 rename {cmd/agent => pkg/agent/service}/activitydetector.go (98%)
 delete mode 100644 pkg/agent/service/service.go
 rename {cmd/agent => pkg/agent/service}/sshauthorizedkeys.go (99%)
 rename {cmd/agent => pkg/agent/service}/sshservice.go (92%)

diff --git a/cmd/agent/agent.go b/cmd/agent/agent.go
index cf9f25c..772fa2b 100755
--- a/cmd/agent/agent.go
+++ b/cmd/agent/agent.go
@@ -4,6 +4,7 @@ import (
 	"bufio"
 	"crypto/tls"
 	"fmt"
+	"git.wamblee.org/converge/pkg/agent/service"
 	"git.wamblee.org/converge/pkg/agent/session"
 	"git.wamblee.org/converge/pkg/comms"
 	"git.wamblee.org/converge/pkg/support/iowrappers"
@@ -205,7 +206,7 @@ func main() {
 
 	// Authentiocation
 
-	authorizedKeys, err := NewAuthorizedPublicKeys(authorizedKeysFile)
+	authorizedKeys, err := service.NewAuthorizedPublicKeys(authorizedKeysFile)
 	if err != nil {
 		os.Exit(1)
 	}
@@ -253,13 +254,10 @@ func main() {
 
 	go comms.ListenForServerEvents(commChannel)
 
-	var service AgentService
+	var agentService AgentService
+
+	agentService = service.NewSshAgentService(registration.HostPrivateKey, shell, authorizedKeys)
 
-	service = SshAgentService{
-		hostPrivateKey: registration.HostPrivateKey,
-		shellCommand:   shell,
-		authorizedKeys: authorizedKeys,
-	}
 	//service = ConnectionServer(netCatServer)
 	//service = ConnectionServer(echoServer)
 	log.Println()
@@ -290,7 +288,7 @@ func main() {
 
 	listener := comms.NewAgentListener(commChannel.Session)
 
-	service.Run(listener)
+	agentService.Run(listener)
 }
 
 func chooseShell(shells []string) string {
diff --git a/cmd/agent/activitydetector.go b/pkg/agent/service/activitydetector.go
similarity index 98%
rename from cmd/agent/activitydetector.go
rename to pkg/agent/service/activitydetector.go
index 98a5842..8a48e5a 100644
--- a/cmd/agent/activitydetector.go
+++ b/pkg/agent/service/activitydetector.go
@@ -1,4 +1,4 @@
-package main
+package service
 
 import (
 	"git.wamblee.org/converge/pkg/agent/session"
diff --git a/pkg/agent/service/service.go b/pkg/agent/service/service.go
deleted file mode 100644
index 6d43c33..0000000
--- a/pkg/agent/service/service.go
+++ /dev/null
@@ -1 +0,0 @@
-package service
diff --git a/cmd/agent/sshauthorizedkeys.go b/pkg/agent/service/sshauthorizedkeys.go
similarity index 99%
rename from cmd/agent/sshauthorizedkeys.go
rename to pkg/agent/service/sshauthorizedkeys.go
index 0ba4fa0..410e4b7 100644
--- a/cmd/agent/sshauthorizedkeys.go
+++ b/pkg/agent/service/sshauthorizedkeys.go
@@ -1,4 +1,4 @@
-package main
+package service
 
 import (
 	"bufio"
diff --git a/cmd/agent/sshservice.go b/pkg/agent/service/sshservice.go
similarity index 92%
rename from cmd/agent/sshservice.go
rename to pkg/agent/service/sshservice.go
index 1849068..54b50aa 100644
--- a/cmd/agent/sshservice.go
+++ b/pkg/agent/service/sshservice.go
@@ -1,4 +1,4 @@
-package main
+package service
 
 import (
 	"fmt"
@@ -21,6 +21,15 @@ type SshAgentService struct {
 	authorizedKeys *AuthorizedPublicKeys
 }
 
+func NewSshAgentService(hostPrivateKey []byte, shellCommand string,
+	authorizedKeys *AuthorizedPublicKeys) SshAgentService {
+	return SshAgentService{
+		hostPrivateKey: hostPrivateKey,
+		shellCommand:   shellCommand,
+		authorizedKeys: authorizedKeys,
+	}
+}
+
 func (s SshAgentService) Run(listener net.Listener) {
 	s.sshServer().Serve(listener)
 }