upload files recursively matching a pattern

This commit is contained in:
Chris Lu 2013-07-13 23:17:41 -07:00
parent ddf4f27a56
commit d9c25ccbb0

View file

@ -16,6 +16,7 @@ import (
var ( var (
uploadReplication *string uploadReplication *string
uploadDir *string uploadDir *string
include *string
) )
func init() { func init() {
@ -23,6 +24,7 @@ func init() {
cmdUpload.IsDebug = cmdUpload.Flag.Bool("debug", false, "verbose debug information") cmdUpload.IsDebug = cmdUpload.Flag.Bool("debug", false, "verbose debug information")
server = cmdUpload.Flag.String("server", "localhost:9333", "weedfs master location") server = cmdUpload.Flag.String("server", "localhost:9333", "weedfs master location")
uploadDir = cmdUpload.Flag.String("dir", "", "Upload the whole folder recursively if specified.") uploadDir = cmdUpload.Flag.String("dir", "", "Upload the whole folder recursively if specified.")
include = cmdUpload.Flag.String("include", "", "pattens of files to upload, e.g., *.pdf, *.html, ab?d.txt, works together with -dir")
uploadReplication = cmdUpload.Flag.String("replication", "000", "replication type(000,001,010,100,110,200)") uploadReplication = cmdUpload.Flag.String("replication", "000", "replication type(000,001,010,100,110,200)")
} }
@ -127,6 +129,11 @@ func runUpload(cmd *Command, args []string) bool {
filepath.Walk(*uploadDir, func(path string, info os.FileInfo, err error) error { filepath.Walk(*uploadDir, func(path string, info os.FileInfo, err error) error {
if err == nil { if err == nil {
if !info.IsDir() { if !info.IsDir() {
if *include != "" {
if ok, _ := filepath.Match(*include, filepath.Base(path)); !ok {
return nil
}
}
results, e := submit([]string{path}) results, e := submit([]string{path})
bytes, _ := json.Marshal(results) bytes, _ := json.Marshal(results)
fmt.Println(string(bytes)) fmt.Println(string(bytes))