removed commands
This commit is contained in:
parent
16d3399ee9
commit
0a63e9afcc
|
@ -1,43 +0,0 @@
|
|||
package main
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"git.xdrm.io/go/aicra/internal/clifmt"
|
||||
"os"
|
||||
"os/exec"
|
||||
"path/filepath"
|
||||
)
|
||||
|
||||
// compile compiles the 'source' file into the 'build' path
|
||||
func compile(source, build string) {
|
||||
|
||||
// 2. Create folder
|
||||
clifmt.Align(" + create output folder")
|
||||
err := os.MkdirAll(filepath.Dir(build), os.ModePerm)
|
||||
if err != nil {
|
||||
fmt.Printf("fail\n")
|
||||
return
|
||||
}
|
||||
fmt.Printf("ok\n")
|
||||
|
||||
// 3. Compile
|
||||
clifmt.Align(" + compile")
|
||||
stdout, err := exec.Command("go",
|
||||
"build", "-ldflags", "-s -w", "-buildmode=plugin",
|
||||
"-o", build,
|
||||
source,
|
||||
).Output()
|
||||
|
||||
// 4. success
|
||||
if err == nil {
|
||||
fmt.Printf("ok\n")
|
||||
return
|
||||
}
|
||||
|
||||
// 5. debug error
|
||||
fmt.Printf("error\n")
|
||||
if len(stdout) > 0 {
|
||||
fmt.Printf("%s\n%s\n%s\n", clifmt.Color(31, "-=-"), stdout, clifmt.Color(31, "-=-"))
|
||||
}
|
||||
|
||||
}
|
|
@ -1,144 +0,0 @@
|
|||
package main
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"git.xdrm.io/go/aicra/internal/clifmt"
|
||||
"git.xdrm.io/go/aicra/internal/config"
|
||||
"os"
|
||||
"path/filepath"
|
||||
"time"
|
||||
)
|
||||
|
||||
var defaultTypeFolder = filepath.Join(os.Getenv("GOPATH"), "src/git.xdrm.io/go/aicra/internal/checker/default/*")
|
||||
|
||||
func main() {
|
||||
|
||||
// check argument
|
||||
if len(os.Args) < 2 || len(os.Args[1]) < 1 {
|
||||
fmt.Printf("missing argument: project path\n")
|
||||
return
|
||||
}
|
||||
|
||||
// get absolute path from arguments
|
||||
root := os.Args[1]
|
||||
rootStat, err := os.Stat(root)
|
||||
if err != nil || !rootStat.IsDir() {
|
||||
fmt.Printf("invalid argument: project path is invalid or not a directory\n")
|
||||
return
|
||||
}
|
||||
if err := os.Chdir(root); err != nil {
|
||||
fmt.Printf("invalid argument: cannot chdir to %s\n", root)
|
||||
return
|
||||
}
|
||||
|
||||
starttime := time.Now()
|
||||
|
||||
/* 1. Load config */
|
||||
schema, err := config.Parse("./aicra.json")
|
||||
if err != nil {
|
||||
fmt.Printf("aicra.json: %s\n", err)
|
||||
return
|
||||
}
|
||||
|
||||
/* 2. End if nothing to compile */
|
||||
if !schema.Driver.Compiled() {
|
||||
fmt.Printf("\n[ %s | %s ] nothing to compile\n",
|
||||
clifmt.Color(32, "finished"),
|
||||
time.Now().Sub(starttime),
|
||||
)
|
||||
return
|
||||
}
|
||||
|
||||
/* Compile
|
||||
---------------------------------------------------------*/
|
||||
/* (1) Create build output dir */
|
||||
buildPath := filepath.Join(schema.Root, ".build")
|
||||
err = os.MkdirAll(buildPath, os.ModePerm)
|
||||
if err != nil {
|
||||
fmt.Printf("%s the directory %s cannot be created, check permissions.", clifmt.Warn(), clifmt.Color(33, buildPath))
|
||||
return
|
||||
}
|
||||
|
||||
/* (2) Compile Default Types */
|
||||
if schema.Types.Default {
|
||||
|
||||
clifmt.Title("compile default types")
|
||||
files, err := filepath.Glob(defaultTypeFolder)
|
||||
if err != nil {
|
||||
fmt.Printf("cannot load default types")
|
||||
} else {
|
||||
|
||||
for _, file := range files {
|
||||
|
||||
typeName, err := filepath.Rel(filepath.Dir(file), file)
|
||||
if err != nil {
|
||||
fmt.Printf("cannot load type '%s'\n", typeName)
|
||||
continue
|
||||
|
||||
}
|
||||
|
||||
fmt.Printf(" [%s]\n", clifmt.Color(33, typeName))
|
||||
|
||||
// Get useful paths
|
||||
source := filepath.Join(file, "main.go")
|
||||
build := filepath.Join(schema.Root, ".build/DEFAULT_TYPES", fmt.Sprintf("%s.so", typeName))
|
||||
|
||||
compile(source, build)
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
/* (3) Compile Types */
|
||||
if len(schema.Types.Map) > 0 {
|
||||
clifmt.Title("compile types")
|
||||
for name, upath := range schema.Types.Map {
|
||||
|
||||
fmt.Printf(" [%s]\n", clifmt.Color(33, name))
|
||||
|
||||
// Get useful paths
|
||||
source := schema.Driver.Source(schema.Root, schema.Types.Folder, upath)
|
||||
build := schema.Driver.Build(schema.Root, schema.Types.Folder, upath)
|
||||
|
||||
compile(source, build)
|
||||
}
|
||||
}
|
||||
|
||||
/* (4) Compile controllers */
|
||||
if len(schema.Controllers.Map) > 0 {
|
||||
clifmt.Title("compile controllers")
|
||||
for name, upath := range schema.Controllers.Map {
|
||||
|
||||
fmt.Printf(" [%s]\n", clifmt.Color(33, name))
|
||||
|
||||
// Get useful paths
|
||||
source := schema.Driver.Source(schema.Root, schema.Controllers.Folder, upath)
|
||||
build := schema.Driver.Build(schema.Root, schema.Controllers.Folder, upath)
|
||||
|
||||
compile(source, build)
|
||||
}
|
||||
}
|
||||
|
||||
/* (5) Compile middlewares */
|
||||
if len(schema.Middlewares.Map) > 0 {
|
||||
clifmt.Title("compile middlewares")
|
||||
for name, upath := range schema.Middlewares.Map {
|
||||
|
||||
fmt.Printf(" [%s]\n", clifmt.Color(33, name))
|
||||
|
||||
// Get useful paths
|
||||
source := schema.Driver.Source(schema.Root, schema.Middlewares.Folder, upath)
|
||||
build := schema.Driver.Build(schema.Root, schema.Middlewares.Folder, upath)
|
||||
|
||||
compile(source, build)
|
||||
}
|
||||
}
|
||||
|
||||
/* (6) finished */
|
||||
fmt.Printf("\n[ %s | %s ] files are located inside the %s directory inside the project folder\n",
|
||||
clifmt.Color(32, "finished"),
|
||||
time.Now().Sub(starttime),
|
||||
clifmt.Color(33, ".build"),
|
||||
)
|
||||
|
||||
}
|
Loading…
Reference in New Issue