summaryrefslogtreecommitdiffstats
path: root/vendor/github.com/pkg/sftp/server_standalone/main.go
diff options
context:
space:
mode:
authorWim <wim@42.be>2018-03-04 23:46:13 +0100
committerWim <wim@42.be>2018-03-04 23:46:13 +0100
commit25a72113b122f984c904b24c4af23a1cba1eff45 (patch)
treef0fb7067d7c958d60ac964afa5b8d5fb79ebc339 /vendor/github.com/pkg/sftp/server_standalone/main.go
parent79c4ad5015bd2be47b32141c6d53f0d128bf865b (diff)
downloadmatterbridge-msglm-25a72113b122f984c904b24c4af23a1cba1eff45.tar.gz
matterbridge-msglm-25a72113b122f984c904b24c4af23a1cba1eff45.tar.bz2
matterbridge-msglm-25a72113b122f984c904b24c4af23a1cba1eff45.zip
Add vendor files for spf13/viper
Diffstat (limited to 'vendor/github.com/pkg/sftp/server_standalone/main.go')
-rw-r--r--vendor/github.com/pkg/sftp/server_standalone/main.go52
1 files changed, 52 insertions, 0 deletions
diff --git a/vendor/github.com/pkg/sftp/server_standalone/main.go b/vendor/github.com/pkg/sftp/server_standalone/main.go
new file mode 100644
index 00000000..0b8e102a
--- /dev/null
+++ b/vendor/github.com/pkg/sftp/server_standalone/main.go
@@ -0,0 +1,52 @@
+package main
+
+// small wrapper around sftp server that allows it to be used as a separate process subsystem call by the ssh server.
+// in practice this will statically link; however this allows unit testing from the sftp client.
+
+import (
+ "flag"
+ "fmt"
+ "io"
+ "io/ioutil"
+ "os"
+
+ "github.com/pkg/sftp"
+)
+
+func main() {
+ var (
+ readOnly bool
+ debugStderr bool
+ debugLevel string
+ options []sftp.ServerOption
+ )
+
+ flag.BoolVar(&readOnly, "R", false, "read-only server")
+ flag.BoolVar(&debugStderr, "e", false, "debug to stderr")
+ flag.StringVar(&debugLevel, "l", "none", "debug level (ignored)")
+ flag.Parse()
+
+ debugStream := ioutil.Discard
+ if debugStderr {
+ debugStream = os.Stderr
+ }
+ options = append(options, sftp.WithDebug(debugStream))
+
+ if readOnly {
+ options = append(options, sftp.ReadOnly())
+ }
+
+ svr, _ := sftp.NewServer(
+ struct {
+ io.Reader
+ io.WriteCloser
+ }{os.Stdin,
+ os.Stdout,
+ },
+ options...,
+ )
+ if err := svr.Serve(); err != nil {
+ fmt.Fprintf(debugStream, "sftp server completed with error: %v", err)
+ os.Exit(1)
+ }
+}