Added support for tile-config-generator

This commit is contained in:
Ruben Koster 2019-03-05 14:01:16 +01:00
parent 7499ce7fb3
commit e549954a09
4 changed files with 60 additions and 0 deletions

View File

@ -34,6 +34,7 @@ func Configure(logger *log.Logger, app *kingpin.Application) {
&DownloadCommand{logger: logger, global: &global},
&ConfigTemplateCommand{logger: logger, global: &global},
&GolangTemplateCommand{logger: logger, global: &global},
&TileConfigCommand{logger: logger, global: &global},
}
for _, c := range cmds {

56
commands/tile_config.go Normal file
View File

@ -0,0 +1,56 @@
package commands
import (
"log"
"github.com/pivotalservices/tile-config-generator/generator"
"github.com/starkandwayne/pivy/pivnet"
kingpin "gopkg.in/alecthomas/kingpin.v2"
)
type TileConfigCommand struct {
global *global
logger *log.Logger
tile pivnet.TileFile
baseDirectory string
doNotIncludeProductVersion bool
includeErrands bool
}
const tileConfigName = "generate-tile-config"
func (cmd *TileConfigCommand) register(app *kingpin.Application) {
c := app.Command(tileConfigName, "Generate tile-config-generator compatible tile config directory").Action(cmd.run)
registerTileFlags(c, &cmd.tile)
app.Flag(
"base-directory",
"base directory to place generated config templates",
).Required().StringVar(&cmd.baseDirectory)
app.Flag(
"do-not-include-product-version",
"flag to use a flat output folder",
).Default("false").BoolVar(&cmd.doNotIncludeProductVersion)
app.Flag(
"include-errands",
"feature flag to include errands",
).Default("false").BoolVar(&cmd.includeErrands)
}
func (cmd *TileConfigCommand) run(c *kingpin.ParseContext) error {
piv, err := cmd.global.NewPivnetSdk(cmd.logger)
if err != nil {
return err
}
link, err := piv.TileDownloadLink(cmd.tile)
if err != nil {
return err
}
metaData, err := piv.DownloadTileMetaDataFromLink(link)
if err != nil {
return err
}
return generator.NewExecutor(metaData, cmd.baseDirectory, cmd.doNotIncludeProductVersion, cmd.includeErrands).Generate()
}

1
go.mod
View File

@ -30,6 +30,7 @@ require (
github.com/pivotal-cf/kiln v0.0.0-20181201001855-3e8211a50c91
github.com/pivotal-cf/om v0.0.0-20181130184206-81ba5acde680
github.com/pivotal-cf/pivnet-cli v0.0.55
github.com/pivotalservices/tile-config-generator v0.0.14
github.com/sergi/go-diff v1.0.0
github.com/stretchr/testify v1.3.0 // indirect
github.com/ulikunitz/xz v0.5.5 // indirect

2
go.sum
View File

@ -87,6 +87,8 @@ github.com/pivotal-cf/om v0.0.0-20181130184206-81ba5acde680 h1:bQElu4y+5DKjxqDdL
github.com/pivotal-cf/om v0.0.0-20181130184206-81ba5acde680/go.mod h1:lvUXUJbWlZpq3odWwJ67T2IbKSNxkvUuLOooTFo98t8=
github.com/pivotal-cf/pivnet-cli v0.0.55 h1:R8mnLHUVb9DWuVqHdmkLCltG7bUTJq9nj5OexPt5Y2s=
github.com/pivotal-cf/pivnet-cli v0.0.55/go.mod h1:GIenTUfi8rXtvDXnOuUMfQ+ZofegQ+7XG2Hby3jB0+4=
github.com/pivotalservices/tile-config-generator v0.0.14 h1:Vzg2eDAAplfQrMqKt+JyrUCtsQxGdF5WESd7z4b6n9M=
github.com/pivotalservices/tile-config-generator v0.0.14/go.mod h1:zh+sJ4VmfFlILmgu3zaKqmryET0fKOxtnMQAS6nPsRU=
github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=
github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
github.com/robdimsdale/sanitizer v0.0.0-20160522134901-ab2334cb7539/go.mod h1:tqCODtkKV+9Tfvt9JURvKCTxJ69bA/OU/QhsaQLK/rc=