drone-arc/main.go
jolheiser 4b03343ac8
Initial commit
Signed-off-by: jolheiser <john.olheiser@gmail.com>
2020-10-26 22:27:21 -05:00

47 lines
935 B
Go

package main
import (
"github.com/mholt/archiver/v3"
"github.com/urfave/cli/v2"
"go.jolheiser.com/beaver"
"os"
"path/filepath"
)
func main() {
app := cli.NewApp()
app.Name = "drone-arc"
app.Description = "Archive files"
app.Action = doMain
app.Flags = []cli.Flag{
&cli.StringSliceFlag{
Name: "files",
Usage: "Files to compress",
EnvVars: []string{"PLUGIN_FILES"},
Value: cli.NewStringSlice("*"),
},
&cli.StringFlag{
Name: "output",
Usage: "Output archive",
EnvVars: []string{"PLUGIN_OUTPUT"},
Value: "archive.tar.gz",
},
}
if err := app.Run(os.Args); err != nil {
beaver.Fatal(err)
}
}
func doMain(ctx *cli.Context) error {
files := make([]string, 0)
for _, glob := range ctx.StringSlice("files") {
globbed, err := filepath.Glob(glob)
if err != nil {
return err
}
files = append(files, globbed...)
}
return archiver.Archive(files, ctx.String("output"))
}