Add flag for generating with individual package policy.

このコミットが含まれているのは:
Cory Slep 2019-01-12 14:37:37 +01:00
コミット 3dbad22900
1個のファイルの変更7行の追加2行の削除

ファイルの表示

@ -41,7 +41,8 @@ var (
input = flag.String("input", "spec.json", "Input JSON-LD specification used to generate Go code.") input = flag.String("input", "spec.json", "Input JSON-LD specification used to generate Go code.")
vocabName = flag.String("vocab", "ActivityStreams", "The vocabulary name being generated by 'input'.") vocabName = flag.String("vocab", "ActivityStreams", "The vocabulary name being generated by 'input'.")
// TODO: Be more rigorous when applying this. Also, clear the default value I am using for convenience. // TODO: Be more rigorous when applying this. Also, clear the default value I am using for convenience.
prefix = flag.String("prefix", "github.com/cjslep/activity/tools/exp/tmp", "Package prefix to use for all generated package paths. This should be the prefix in the GOPATH directory if generating in a subdirectory.") prefix = flag.String("prefix", "github.com/cjslep/activity/tools/exp/tmp", "Package prefix to use for all generated package paths. This should be the prefix in the GOPATH directory if generating in a subdirectory.")
individual = flag.Bool("individual", false, "Whether to generate types and properties in individual packages.")
) )
type list []string type list []string
@ -73,12 +74,16 @@ func main() {
if err != nil { if err != nil {
panic(err) panic(err)
} }
policy := convert.FlatUnderRoot
if *individual {
policy = convert.IndividualUnderRoot
}
c := &convert.Converter{ c := &convert.Converter{
Registry: registry, Registry: registry,
GenRoot: props.NewPackageManager(*prefix, "gen"), GenRoot: props.NewPackageManager(*prefix, "gen"),
VocabularyName: *vocabName, VocabularyName: *vocabName,
ValueRoot: props.NewPackageManager(*prefix, "gen/vals"), ValueRoot: props.NewPackageManager(*prefix, "gen/vals"),
PackagePolicy: convert.FlatUnderRoot, PackagePolicy: policy,
} }
f, err := c.Convert(p) f, err := c.Convert(p)
if err != nil { if err != nil {