@@ -9,8 +9,10 @@ import (
99 "github.com/spf13/cobra"
1010 "io"
1111 "io/ioutil"
12+ "log"
1213 "net/http"
1314 "os"
15+ "os/exec"
1416 "path/filepath"
1517 "strings"
1618 "text/template"
@@ -32,6 +34,8 @@ type flag struct {
3234type foo struct {
3335 AppName string
3436 Package string
37+ BasePackage string
38+ GroupId string
3539 Commands []command
3640}
3741
@@ -68,16 +72,32 @@ var createCmd = &cobra.Command{
6872
6973
7074 data := foo {
71- Package : basePackage ,
75+ Package : basePackage + "." + appName ,
7276 }
7377
7478 file , _ := json .MarshalIndent (data , "" , " " )
7579
76- _ = ioutil .WriteFile ("severell.json" , file , 0644 )
80+ _ = ioutil .WriteFile (args [0 ] + "/severell.json" , file , 0644 )
81+
82+ compile (args [0 ])
83+ loadCommands (& args [0 ], & data .Package )
7784
7885 },
7986}
8087
88+ func compile (dir string ) {
89+ cmdCon := exec .Command ("mvn" ,"-q" , "clean" , "compile" )
90+ cmdCon .Dir = dir
91+
92+ cmdCon .Stdout = os .Stdout
93+ cmdCon .Stderr = os .Stderr
94+
95+ err := cmdCon .Run ()
96+ if err != nil {
97+ log .Fatalf ("cmd.Run() failed with %s\n " , err )
98+ }
99+ }
100+
81101func createDir (dir string , basePackage string ) {
82102 if dir != "." {
83103 if _ , err := os .Stat (dir ); os .IsNotExist (err ) {
@@ -125,6 +145,10 @@ func unzip(src string, dest string, basePackage string, name string) ([]string,
125145
126146 // Store filename/path for returning and using later on
127147
148+ groupId := basePackage
149+ packageName := strings .ReplaceAll (basePackage , "." , "/" ) + "/" + name
150+ packageNameWithDots := basePackage + "." + name
151+
128152 fpath := filepath .Join (dest , strings .TrimPrefix (f .Name , "severell-framework-master/" ))
129153 fmt .Println (fpath )
130154 // Check for ZipSlip. More Info: http://bit.ly/2MsjAWE
@@ -137,7 +161,7 @@ func unzip(src string, dest string, basePackage string, name string) ([]string,
137161 }
138162
139163 if strings .HasPrefix (fpath , replaceDest + "src/main/java" ) || strings .HasPrefix (fpath , replaceDest + "src/test/java" ) {
140- fpath = strings .Replace (fpath , replaceDest + "src/main/java" , replaceDest + "src/main/java/" + strings . ReplaceAll ( basePackage , "." , "/" ) , 1 )
164+ fpath = strings .Replace (fpath , replaceDest + "src/main/java" , replaceDest + "src/main/java/" + packageName , 1 )
141165 }
142166
143167 filenames = append (filenames , fpath )
@@ -171,7 +195,7 @@ func unzip(src string, dest string, basePackage string, name string) ([]string,
171195 if err != nil {
172196 fmt .Println (err )
173197 }
174- err = tmpl .Execute (outFile , & foo {Package : strings .ReplaceAll (basePackage , string ('\n' ), "" ), AppName : name })
198+ err = tmpl .Execute (outFile , & foo {GroupId : groupId , BasePackage : packageNameWithDots , Package : strings .ReplaceAll (packageNameWithDots , string ('\n' ), "" ), AppName : name })
175199 if err != nil {
176200 fmt .Println (err )
177201 }
0 commit comments