Skip to content

Commit

Permalink
Merge pull request #15 from deadcheat/feature/issue-12_enable_to_swit…
Browse files Browse the repository at this point in the history
…ch_generate_gogenerate_or_not

Feature/issue 12 enable to switch generate gogenerate or not
  • Loading branch information
deadcheat committed Jan 1, 2019
2 parents 7fc8c72 + e667ec2 commit 900a178
Show file tree
Hide file tree
Showing 5 changed files with 47 additions and 26 deletions.
2 changes: 1 addition & 1 deletion cmd/goblet/main.go
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ func main() {

app.Name = "goblet"
app.Usage = "make a binary contain some assets"
app.Version = "1.0.3"
app.Version = "1.0.4"

app.Flags = values.FlagDefs
// mount presenter
Expand Down
39 changes: 22 additions & 17 deletions generator/presenter/file/presenter.go
Original file line number Diff line number Diff line change
Expand Up @@ -63,15 +63,16 @@ func (p *Presenter) action(c *cli.Context) error {
},
},
).Parse(pt.AssetFileTemplate)

generateGoGen := c.Bool("generate")
var b bytes.Buffer
assets := &pt.Assets{
ExecutedCommand: strings.Join(os.Args, " "),
PackageName: c.String("package"),
VarName: c.String("name"),
DirMap: e.DirMap,
FileMap: e.FileMap,
Paths: e.Paths,
ExecutedCommand: strings.Join(os.Args, " "),
PackageName: c.String("package"),
GenerateGoGenerate: generateGoGen,
VarName: c.String("name"),
DirMap: e.DirMap,
FileMap: e.FileMap,
Paths: e.Paths,
}
targetPaths := paths
var writer io.Writer = os.Stdout
Expand All @@ -86,19 +87,23 @@ func (p *Presenter) action(c *cli.Context) error {
defer f.Close()
writer = f

targetPaths = make([]string, len(paths))
baseDir := filepath.Dir(outName)
for i, p := range paths {
rp, err := filepath.Rel(baseDir, p)
if err != nil {
log.Println(err)
targetPaths[i] = paths[i]
continue
if generateGoGen {
targetPaths = make([]string, len(paths))
baseDir := filepath.Dir(outName)
for i, p := range paths {
rp, err := filepath.Rel(baseDir, p)
if err != nil {
log.Println(err)
targetPaths[i] = paths[i]
continue
}
targetPaths[i] = rp
}
targetPaths[i] = rp
}
}
assets.ExecutedCommand = executedCommand(c, targetPaths)
if generateGoGen {
assets.ExecutedCommand = executedCommand(c, targetPaths)
}
_ = t.Execute(&b, assets)

// gofmt
Expand Down
4 changes: 4 additions & 0 deletions generator/presenter/file/presenter_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -211,11 +211,13 @@ func TestActionSuccessWithFile(t *testing.T) {
set.String("out", "", "")
set.String("name", "", "")
set.String("package", "", "")
set.Bool("generate", false, "")

ctx := cli.NewContext(a, set, nil)
ctx.Set("out", f.Path)
ctx.Set("name", "Asset")
ctx.Set("package", "assets")
ctx.Set("generate", "true")
if err := p.action(ctx); err != nil {
t.Error("Mount should not return any error: ", err)
}
Expand Down Expand Up @@ -292,12 +294,14 @@ func TestExecutedCommand(t *testing.T) {
set.String("out", "", "")
set.String("name", "", "")
set.String("package", "", "")
set.Bool("generate", false, "")

a.Flags = values.FlagDefs

ctx := cli.NewContext(a, set, nil)
ctx.Set("out", "/tmp/hoge/test.go")
ctx.Set("name", "Asset")
ctx.Set("package", "assets")
ctx.Set("generate", "true")
fmt.Println(executedCommand(ctx, []string{"/tmp/hoge/files", "test/files"}))
}
15 changes: 8 additions & 7 deletions generator/presenter/file/template/template.go
Original file line number Diff line number Diff line change
Expand Up @@ -4,12 +4,13 @@ import "github.com/deadcheat/goblet"

// Assets struct for assign values to template
type Assets struct {
ExecutedCommand string
PackageName string
VarName string
DirMap map[string][]string
FileMap map[string]*goblet.File
Paths []string
ExecutedCommand string
PackageName string
VarName string
GenerateGoGenerate bool
DirMap map[string][]string
FileMap map[string]*goblet.File
Paths []string
}

// AssetFileTemplate template for asset file
Expand All @@ -21,7 +22,7 @@ import(
"github.com/deadcheat/goblet"
)
//go:generate {{ .ExecutedCommand }}
{{ if .GenerateGoGenerate }}//go:generate {{ .ExecutedCommand }}{{ end }}
{{ $FileMap := .FileMap}}{{ $DirMap := .DirMap}}{{ $VarName := .VarName }}
// {{ $VarName }} a generated file system
Expand Down
13 changes: 12 additions & 1 deletion generator/values/values.go
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@ type FlagReader func(*cli.Context) string
var (
FlagKeys = []string{
"expression",
"generate",
"name",
"out",
"package",
Expand All @@ -28,19 +29,29 @@ var (
}
return buf.String()
},
"generate": func(c *cli.Context) string {
if c.Bool("generate") {
return "-g"
}
return ""
},
"name": func(c *cli.Context) string { return fmt.Sprintf("-%s %s", "n", c.String("name")) },
"out": func(c *cli.Context) string {
path := c.String("out")
bn := filepath.Base(path)
return fmt.Sprintf("-%s %s", "o", bn)
},
"package": func(c *cli.Context) string { return fmt.Sprintf("-%s %s", "p", c.String("package")) },
"name": func(c *cli.Context) string { return fmt.Sprintf("-%s %s", "n", c.String("name")) },
}
FlagDefs = []cli.Flag{
cli.StringSliceFlag{
Name: "expression, e",
Usage: "Regular expressions you want files to contain",
},
cli.BoolFlag{
Name: "generate, g",
Usage: "If set, generate go:generate line to outputfile",
},
cli.StringFlag{
Name: "name, n",
Value: "Assets",
Expand Down

0 comments on commit 900a178

Please sign in to comment.