41 lines
854 B
Go
41 lines
854 B
Go
|
package parser
|
||
|
|
||
|
import (
|
||
|
"encoding/json"
|
||
|
"os"
|
||
|
"strings"
|
||
|
)
|
||
|
|
||
|
// Box found while parsing a file
|
||
|
type Box struct {
|
||
|
Name string // name of the box
|
||
|
Path string // relative path of folder NewBox("./templates")
|
||
|
AbsPath string // absolute path of Path
|
||
|
Package string // the package name the box was found in
|
||
|
PWD string // the PWD when the parser was run
|
||
|
PackageDir string // the absolute path of the package where the box was found
|
||
|
}
|
||
|
|
||
|
type Boxes []*Box
|
||
|
|
||
|
// String - json returned
|
||
|
func (b Box) String() string {
|
||
|
x, _ := json.Marshal(b)
|
||
|
return string(x)
|
||
|
}
|
||
|
|
||
|
// NewBox stub from the name and the path provided
|
||
|
func NewBox(name string, path string) *Box {
|
||
|
if len(name) == 0 {
|
||
|
name = path
|
||
|
}
|
||
|
name = strings.Replace(name, "\"", "", -1)
|
||
|
pwd, _ := os.Getwd()
|
||
|
box := &Box{
|
||
|
Name: name,
|
||
|
Path: path,
|
||
|
PWD: pwd,
|
||
|
}
|
||
|
return box
|
||
|
}
|