ftp upload
parent
8c5a4efd94
commit
47413f618d
29
main.go
29
main.go
|
|
@ -9,6 +9,7 @@ package main
|
|||
import (
|
||||
"flag"
|
||||
"log"
|
||||
"os/exec"
|
||||
|
||||
filedriver "github.com/goftp/file-driver"
|
||||
"github.com/goftp/server"
|
||||
|
|
@ -16,7 +17,7 @@ import (
|
|||
|
||||
func main() {
|
||||
var (
|
||||
root = flag.String("root", "", "Root directory to serve")
|
||||
root = flag.String("root", "./tmp", "Root directory to serve")
|
||||
user = flag.String("user", "admin", "Username for login")
|
||||
pass = flag.String("pass", "123456", "Password for login")
|
||||
port = flag.Int("port", 2121, "Port")
|
||||
|
|
@ -36,7 +37,15 @@ func main() {
|
|||
Factory: factory,
|
||||
Port: *port,
|
||||
Hostname: *host,
|
||||
Auth: &server.SimpleAuth{Name: *user, Password: *pass},
|
||||
Auth: &callbackAuth{
|
||||
realAuth: &server.SimpleAuth{
|
||||
Name: *user,
|
||||
Password: *pass,
|
||||
},
|
||||
callback: func() {
|
||||
log.Printf("callback: %v", exec.Command("sh", "-c", "cd /wiki; git add -A :/; git commit -m \"ftp upload\"").Run())
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
log.Printf("Starting ftp server on %v:%v", opts.Hostname, opts.Port)
|
||||
|
|
@ -47,3 +56,19 @@ func main() {
|
|||
log.Fatal("Error starting server:", err)
|
||||
}
|
||||
}
|
||||
|
||||
type callbackAuth struct {
|
||||
realAuth server.Auth
|
||||
callback func()
|
||||
}
|
||||
|
||||
func (ca *callbackAuth) CheckPasswd(u, p string) (bool, error) {
|
||||
ok, err := ca.realAuth.CheckPasswd(u, p)
|
||||
if !ok || err != nil {
|
||||
return ok, err
|
||||
}
|
||||
if ca.callback != nil {
|
||||
ca.callback()
|
||||
}
|
||||
return ok, err
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue