55 lines
953 B
Go
55 lines
953 B
Go
package cli
|
|
|
|
import (
|
|
"bytes"
|
|
"path/filepath"
|
|
|
|
"github.com/urfave/cli/v2"
|
|
"sneak.berlin/go/mfer/internal/log"
|
|
"sneak.berlin/go/mfer/mfer"
|
|
)
|
|
|
|
func (mfa *CLIApp) generateManifestOperation(ctx *cli.Context) error {
|
|
log.Debug("generateManifestOperation()")
|
|
myArgs := ctx.Args()
|
|
log.Dump(myArgs)
|
|
|
|
opts := &mfer.ManifestScanOptions{
|
|
IgnoreDotfiles: ctx.Bool("IgnoreDotfiles"),
|
|
FollowSymLinks: ctx.Bool("FollowSymLinks"),
|
|
}
|
|
paths := make([]string, ctx.Args().Len()-1)
|
|
for i := 0; i < ctx.Args().Len(); i++ {
|
|
ap, err := filepath.Abs(ctx.Args().Get(i))
|
|
if err != nil {
|
|
return err
|
|
}
|
|
log.Dump(ap)
|
|
paths = append(paths, ap)
|
|
}
|
|
mf, err := mfer.NewFromPaths(opts, paths...)
|
|
if err != nil {
|
|
panic(err)
|
|
}
|
|
mf.WithContext(ctx.Context)
|
|
|
|
log.Dump(mf)
|
|
|
|
err = mf.Scan()
|
|
if err != nil {
|
|
return err
|
|
}
|
|
|
|
buf := new(bytes.Buffer)
|
|
|
|
err = mf.WriteTo(buf)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
|
|
dat := buf.Bytes()
|
|
|
|
log.Dump(dat)
|
|
return nil
|
|
}
|