52 lines
1.2 KiB
Go
52 lines
1.2 KiB
Go
package main
|
|
|
|
import (
|
|
"flag"
|
|
"fmt"
|
|
"os"
|
|
|
|
"github.com/onsi/ginkgo/ginkgo/convert"
|
|
colorable "github.com/onsi/ginkgo/reporters/stenographer/support/go-colorable"
|
|
"github.com/onsi/ginkgo/types"
|
|
)
|
|
|
|
func BuildConvertCommand() *Command {
|
|
return &Command{
|
|
Name: "convert",
|
|
FlagSet: flag.NewFlagSet("convert", flag.ExitOnError),
|
|
UsageCommand: "ginkgo convert /path/to/package",
|
|
Usage: []string{
|
|
"Convert the package at the passed in path from an XUnit-style test to a Ginkgo-style test",
|
|
},
|
|
Command: convertPackage,
|
|
}
|
|
}
|
|
|
|
func convertPackage(args []string, additionalArgs []string) {
|
|
deprecationTracker := types.NewDeprecationTracker()
|
|
deprecationTracker.TrackDeprecation(types.Deprecations.Convert())
|
|
fmt.Fprintln(colorable.NewColorableStderr(), deprecationTracker.DeprecationsReport())
|
|
|
|
if len(args) != 1 {
|
|
println(fmt.Sprintf("usage: ginkgo convert /path/to/your/package"))
|
|
os.Exit(1)
|
|
}
|
|
|
|
defer func() {
|
|
err := recover()
|
|
if err != nil {
|
|
switch err := err.(type) {
|
|
case error:
|
|
println(err.Error())
|
|
case string:
|
|
println(err)
|
|
default:
|
|
println(fmt.Sprintf("unexpected error: %#v", err))
|
|
}
|
|
os.Exit(1)
|
|
}
|
|
}()
|
|
|
|
convert.RewritePackage(args[0])
|
|
}
|