github.com/jdhenke/godel@v0.0.0-20161213181855-abeb3861bf0d/apps/distgo/cmd/dist/cmd.go (about) 1 // Copyright 2016 Palantir Technologies, Inc. 2 // 3 // Licensed under the Apache License, Version 2.0 (the "License"); 4 // you may not use this file except in compliance with the License. 5 // You may obtain a copy of the License at 6 // 7 // http://www.apache.org/licenses/LICENSE-2.0 8 // 9 // Unless required by applicable law or agreed to in writing, software 10 // distributed under the License is distributed on an "AS IS" BASIS, 11 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 // See the License for the specific language governing permissions and 13 // limitations under the License. 14 15 package dist 16 17 import ( 18 "github.com/nmiyake/pkg/dirs" 19 "github.com/palantir/pkg/cli" 20 "github.com/palantir/pkg/cli/cfgcli" 21 "github.com/palantir/pkg/cli/flag" 22 23 "github.com/palantir/godel/apps/distgo/cmd" 24 "github.com/palantir/godel/apps/distgo/config" 25 ) 26 27 const ( 28 forceBuildFlagName = "force-build" 29 ) 30 31 var ( 32 forceBuildFlag = flag.BoolFlag{ 33 Name: forceBuildFlagName, 34 Usage: "Build all input build specs for distribution", 35 } 36 ) 37 38 func Command() cli.Command { 39 return cli.Command{ 40 Name: "dist", 41 Usage: "Create a distribution for one or more products in the project", 42 Flags: []flag.Flag{ 43 cmd.ProductsParam, 44 forceBuildFlag, 45 }, 46 Action: func(ctx cli.Context) error { 47 cfg, err := config.Load(cfgcli.ConfigPath, cfgcli.ConfigJSON) 48 if err != nil { 49 return err 50 } 51 wd, err := dirs.GetwdEvalSymLinks() 52 if err != nil { 53 return err 54 } 55 56 return Products(ctx.Slice(cmd.ProductsParamName), cfg, ctx.Bool(forceBuildFlagName), wd, ctx.App.Stdout) 57 }, 58 } 59 }