extract skel into its own package (#596)

This breaks the dependency of libplugin
on x/crypto, enabling people to use libplugin
without having conflicts over the crypto module.
This commit is contained in:
Josh Bleecher Snyder 2025-05-23 12:42:44 -07:00 • committed by GitHub
parent e6d3bb694b
commit 297b8c60e7
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
12 changed files with 91 additions and 99 deletions

View file

@ -4,6 +4,7 @@ package main
import (
"github.com/tg123/sshpiper/libplugin"
"github.com/tg123/sshpiper/libplugin/skel"
"github.com/urfave/cli/v2"
)
@ -29,7 +30,7 @@ func main() {
},
},
CreateConfig: func(c *cli.Context) (*libplugin.SshPiperPluginConfig, error) {
skel := libplugin.NewSkelPlugin(plugin.listPipe)
skel := skel.NewSkelPlugin(plugin.listPipe)
return skel.CreateConfig(), nil
},
})

View file

@ -4,12 +4,14 @@ package main
import (
"errors"
log "github.com/sirupsen/logrus"
"os/user"
"regexp"
"slices"
log "github.com/sirupsen/logrus"
"github.com/tg123/sshpiper/libplugin"
"github.com/tg123/sshpiper/libplugin/skel"
)
type skelpipeWrapper struct {
@ -45,8 +47,8 @@ type skelpipeToPrivateKeyWrapper struct {
skelpipeToWrapper
}
func (s *skelpipeWrapper) From() []libplugin.SkelPipeFrom {
var froms []libplugin.SkelPipeFrom
func (s *skelpipeWrapper) From() []skel.SkelPipeFrom {
var froms []skel.SkelPipeFrom
for _, f := range s.pipe.From {
w := &skelpipeFromWrapper{
@ -87,7 +89,7 @@ func (s *skelpipeToWrapper) KnownHosts(conn libplugin.ConnMetadata) ([]byte, err
})
}
func (s *skelpipeFromWrapper) MatchConn(conn libplugin.ConnMetadata) (libplugin.SkelPipeTo, error) {
func (s *skelpipeFromWrapper) MatchConn(conn libplugin.ConnMetadata) (skel.SkelPipeTo, error) {
username := conn.User()
targetuser := s.to.Username
@ -175,7 +177,6 @@ func (s *skelpipeToPrivateKeyWrapper) PrivateKey(conn libplugin.ConnMetadata) ([
"DOWNSTREAM_USER": conn.User(),
"UPSTREAM_USER": s.username,
})
if err != nil {
return nil, nil, err
}
@ -187,13 +188,13 @@ func (s *skelpipeToPasswordWrapper) OverridePassword(conn libplugin.ConnMetadata
return nil, nil
}
func (p *plugin) listPipe(_ libplugin.ConnMetadata) ([]libplugin.SkelPipe, error) {
func (p *plugin) listPipe(_ libplugin.ConnMetadata) ([]skel.SkelPipe, error) {
configs, err := p.loadConfig()
if err != nil {
return nil, err
}
var pipes []libplugin.SkelPipe
var pipes []skel.SkelPipe
for _, config := range configs {
for _, pipe := range config.Pipes {
wrapper := &skelpipeWrapper{