ftp upload
parent
8c5a4efd94
commit
47413f618d
29
main.go
29
main.go
|
|
@ -9,6 +9,7 @@ package main
|
||||||
import (
|
import (
|
||||||
"flag"
|
"flag"
|
||||||
"log"
|
"log"
|
||||||
|
"os/exec"
|
||||||
|
|
||||||
filedriver "github.com/goftp/file-driver"
|
filedriver "github.com/goftp/file-driver"
|
||||||
"github.com/goftp/server"
|
"github.com/goftp/server"
|
||||||
|
|
@ -16,7 +17,7 @@ import (
|
||||||
|
|
||||||
func main() {
|
func main() {
|
||||||
var (
|
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")
|
user = flag.String("user", "admin", "Username for login")
|
||||||
pass = flag.String("pass", "123456", "Password for login")
|
pass = flag.String("pass", "123456", "Password for login")
|
||||||
port = flag.Int("port", 2121, "Port")
|
port = flag.Int("port", 2121, "Port")
|
||||||
|
|
@ -36,7 +37,15 @@ func main() {
|
||||||
Factory: factory,
|
Factory: factory,
|
||||||
Port: *port,
|
Port: *port,
|
||||||
Hostname: *host,
|
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)
|
log.Printf("Starting ftp server on %v:%v", opts.Hostname, opts.Port)
|
||||||
|
|
@ -47,3 +56,19 @@ func main() {
|
||||||
log.Fatal("Error starting server:", err)
|
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