mod: copy stderr from ssh session to locally running processes stderr
All checks were successful
Go Project Action / Spell-check and test go project (push) Successful in 51s
Release Go Application / Release go project (release) Successful in 46s

Log the `serve` version in the beginning with a closing log message.
This commit is contained in:
2025-10-31 23:03:30 +01:00
parent d976100cfb
commit f78e3092fb

View File

@@ -4,6 +4,7 @@ import (
"context"
"errors"
"fmt"
"io"
"net"
"os"
"os/signal"
@@ -56,14 +57,10 @@ func setupSshServer(host string, port string, host_key_path string, users map[st
func(next ssh.Handler) ssh.Handler {
return func(s ssh.Session) {
cmd := wish.Command(s, name, args...)
file, err := os.OpenFile("log", os.O_APPEND|os.O_WRONLY|os.O_CREATE, 0600)
if err != nil {
wish.Fatalln(s, err)
}
cmd.SetStderr(file)
if err := cmd.Run(); err != nil {
wish.Fatalln(s, err)
}
io.Copy(os.Stderr, s.Stderr())
next(s)
}
},
@@ -76,6 +73,9 @@ func setupSshServer(host string, port string, host_key_path string, users map[st
// Serve an ssh application using the provided arguments.
func Serve(host string, port string, host_key_path string, users map[string]string, name string, args []string) {
setupLogging()
log.Info("Running Serve (v2.7)...") // TODO make version string automatically the git tag (otherwise commit-hash)?
defer log.Info("Stopping Serve...")
srv, err := setupSshServer(host, port, host_key_path, users, name, args)
if err != nil {
log.Error("Could not start server", "error", err)