drone-s3-sync/main.go

68 lines
1.1 KiB
Go
Raw Normal View History

2015-10-16 22:09:45 +02:00
package main
import (
"fmt"
"os"
"path/filepath"
2015-10-16 22:09:45 +02:00
"strings"
2015-11-14 01:17:17 +01:00
"github.com/drone/drone-go/drone"
"github.com/drone/drone-go/plugin"
2015-10-16 22:09:45 +02:00
)
func main() {
vargs := PluginArgs{}
2015-11-14 01:17:17 +01:00
workspace := drone.Workspace{}
2015-10-16 22:09:45 +02:00
plugin.Param("vargs", &vargs)
2015-11-14 01:17:17 +01:00
plugin.Param("workspace", &workspace)
if err := plugin.Parse(); err != nil {
fmt.Println(err)
os.Exit(1)
}
2015-10-16 22:09:45 +02:00
if len(vargs.Key) == 0 || len(vargs.Secret) == 0 || len(vargs.Bucket) == 0 {
2015-10-16 22:09:45 +02:00
return
}
if len(vargs.Region) == 0 {
vargs.Region = "us-east-1"
}
if len(vargs.Source) == 0 {
vargs.Source = "."
}
2015-11-14 01:17:17 +01:00
vargs.Source = filepath.Join(workspace.Path, vargs.Source)
2015-10-16 22:09:45 +02:00
if strings.HasPrefix(vargs.Target, "/") {
vargs.Target = vargs.Target[1:]
}
client := NewAWS(vargs)
err := client.List(vargs.Target)
2015-10-16 22:09:45 +02:00
if err != nil {
fmt.Println(err)
2015-10-16 22:09:45 +02:00
os.Exit(1)
}
err = filepath.Walk(vargs.Source, client.visit)
if err != nil {
fmt.Println(err)
os.Exit(1)
2015-10-16 22:09:45 +02:00
}
if vargs.Delete {
err = client.Cleanup()
if err != nil {
fmt.Println(err)
os.Exit(1)
}
}
2015-10-16 22:09:45 +02:00
}
func debug(format string, args ...interface{}) {
if os.Getenv("DEBUG") != "" {
fmt.Printf(format, args...)
}
}