Skip to content

Commit

Permalink
Allow for goopack variables (#64)
Browse files Browse the repository at this point in the history
  • Loading branch information
adjackura authored May 13, 2019
1 parent d8fa66f commit 87982fc
Show file tree
Hide file tree
Showing 2 changed files with 24 additions and 1 deletion.
13 changes: 12 additions & 1 deletion goopack/goopack.go
Original file line number Diff line number Diff line change
Expand Up @@ -398,6 +398,17 @@ func addFlags(args []string) {
}
}

func populateVars() map[string]string {
varMap := map[string]string{}
flag.Visit(func(flg *flag.Flag) {
if strings.HasPrefix(flg.Name, varFlagPrefix) {
varMap[strings.TrimPrefix(flg.Name, varFlagPrefix)] = flg.Value.String()
}
})

return varMap
}

func usage() {
fmt.Printf("Usage: %s <path/to/goospec>\n", filepath.Base(os.Args[0]))
}
Expand Down Expand Up @@ -431,7 +442,7 @@ func main() {
}
}

var varMap map[string]string
varMap := populateVars()
gs, err := goolib.ReadGooSpec(flag.Arg(0), varMap)
if err != nil {
log.Fatal(err)
Expand Down
12 changes: 12 additions & 0 deletions goopack/goopack_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -165,6 +165,18 @@ func TestWriteFiles(t *testing.T) {
}
}

func TestPopulateVars(t *testing.T) {
flag.String("var:TestPopulateVars1", "", "")
flag.String("var:TestPopulateVars2", "", "")
flag.CommandLine.Parse([]string{"-var:TestPopulateVars1", "value", "-var:TestPopulateVars2=value"})
want := map[string]string{"TestPopulateVars1": "value", "TestPopulateVars2": "value"}

got := populateVars()
if !reflect.DeepEqual(want, got) {
t.Errorf("want: %q, got: %q", want, got)
}
}

func TestAddFlags(t *testing.T) {
firstFlag := "var:first_var"
secondFlag := "var:second_var"
Expand Down

0 comments on commit 87982fc

Please sign in to comment.