Documentation
¶
Index ¶
- Constants
- Variables
- func AddImportForcely(root *dst.File, path string)
- func AddStructField(decl dst.Decl, name string, typ string)
- func AddressOf(expr dst.Expr) *dst.UnaryExpr
- func ArrayType(elem dst.Expr) *dst.ArrayType
- func AssignStmt(lhs, rhs dst.Expr) *dst.AssignStmt
- func Block(stmt dst.Stmt) *dst.BlockStmt
- func BlockStmts(stmts ...dst.Stmt) *dst.BlockStmt
- func BoolFalse() *dst.BasicLit
- func BoolTrue() *dst.BasicLit
- func CallTo(name string, args []dst.Expr) *dst.CallExpr
- func DeferStmt(call *dst.CallExpr) *dst.DeferStmt
- func DefineStmts(lhs, rhs []dst.Expr) *dst.AssignStmt
- func DereferenceOf(expr dst.Expr) dst.Expr
- func EmptyStmt() *dst.EmptyStmt
- func ExprStmt(expr dst.Expr) *dst.ExprStmt
- func Exprs(exprs ...dst.Expr) []dst.Expr
- func ExtractVersion(path string) string
- func FindFuncDecl(root *dst.File, name string) *dst.FuncDecl
- func GetGoModPath() (string, error)
- func GetInstrumentLogPath(name string) string
- func GetLogPath(name string) string
- func GetPreprocessLogPath(name string) string
- func GetVarNameOfFunc(fn string) string
- func GuaranteeInInstrument()
- func GuaranteeInPreprocess()
- func HasGoBuildComment(text string) bool
- func HasReceiver(fn *dst.FuncDecl) bool
- func HashStruct(st interface{}) (uint64, error)
- func Ident(name string) *dst.Ident
- func IfNotNilStmt(cond dst.Expr, body, elseBody *dst.BlockStmt) *dst.IfStmt
- func IfStmt(init dst.Stmt, cond dst.Expr, body, elseBody *dst.BlockStmt) *dst.IfStmt
- func InInstrument() bool
- func InPreprocess() bool
- func IndexExpr(x dst.Expr, index dst.Expr) *dst.IndexExpr
- func InitOptions() (err error)
- func IntLit(value int) *dst.BasicLit
- func InterfaceType() *dst.InterfaceType
- func IsCompileCommand(line string) bool
- func IsEllipsis(typ dst.Expr) bool
- func IsExistGoMod() (bool, error)
- func IsGoFile(path string) bool
- func IsInterfaceType(typ dst.Expr) bool
- func IsUnusedIdent(ident *dst.Ident) bool
- func MakeUnusedIdent(ident *dst.Ident) *dst.Ident
- func MatchFuncDecl(decl dst.Decl, function string, receiverType string) bool
- func MatchStructDecl(decl dst.Decl, structType string) bool
- func MatchVersion(version string, ruleVersion string) (bool, error)
- func NewField(name string, typ dst.Expr) *dst.Field
- func NewVarDecl(name string, paramTypes *dst.FieldList) *dst.GenDecl
- func ParenExpr(x dst.Expr) *dst.ParenExpr
- func ParseAstFromFile(filePath string) (*dst.File, error)
- func ParseAstFromFileFast(filePath string) (*dst.File, error)
- func ParseAstFromSnippet(codeSnippnet string) ([]dst.Stmt, error)
- func ParseAstFromSource(source string) (*dst.File, error)
- func ParseOptions()
- func PrintTheVersion()
- func RemoveGoBuildComment(text string) string
- func RenamePackage(source, newPkgName string) string
- func ReturnStmt(results []dst.Expr) *dst.ReturnStmt
- func SaveDebugFile(prefix string, path string)
- func SelectorExpr(x dst.Expr, sel string) *dst.SelectorExpr
- func Stmts(stmts ...dst.Stmt) []dst.Stmt
- func StringLit(value string) *dst.BasicLit
- func SwitchCase(list []dst.Expr, stmts []dst.Stmt) *dst.CaseClause
- func TypeAssertExpr(x dst.Expr, typ dst.Expr) *dst.TypeAssertExpr
- func WriteAstToFile(astRoot *dst.File, filePath string) (string, error)
Constants ¶
const ( IdentNil = "nil" IdentTrue = "true" IdentFalse = "false" IdentIgnore = "_" )
const ( WorkingDirEnv = "OTEL_WORKING_DIRECTORY" DebugLogEnv = "OTEL_DEBUG_TO_FILE" DisableRulesEnv = "OTEL_DISABLE_RULES" VerboseEnv = "OTEL_VERBOSE" )
The following flags should be shared across preprocess and instrument.
const ( TInstrument = "instrument" TPreprocess = "preprocess" )
const DebugLogFile = "debug.log"
const GoBuildIgnoreComment = "//go:build ignore"
const GoModFile = "go.mod"
const TempBuildDir = ".otel-build"
Variables ¶
var BuildArgs []string
BuildArgs are the arguments to pass to the go build command.
var Debug = false
Debug true means debug mode.
var DebugLog = false
DebugLog true means debug log is enabled.
var DisableRules = "testrule"
DisableRules enable rules by name(* for all, comma separated names).
var InToolexec bool
InToolexec true means this tool is being invoked in the go build process. This flag should not be set manually by users.
var PrintVersion = false
Version
var Restore = false
Restore true means restore all instrumentations.
var TheName = "otelbuild"
var TheVersion = "1.0.0"
This is the version of the tool, which will be printed when the -version flag is passed. This value is specified by the build system.
var Verbose = true
Verbose true means print verbose log.
Functions ¶
func AddImportForcely ¶
func AssignStmt ¶
func AssignStmt(lhs, rhs dst.Expr) *dst.AssignStmt
func DefineStmts ¶
func DefineStmts(lhs, rhs []dst.Expr) *dst.AssignStmt
func ExtractVersion ¶ added in v0.0.2
func GetGoModPath ¶
GetGoModPath returns the absolute path of go.mod file, if any.
func GetInstrumentLogPath ¶
func GetLogPath ¶
func GetPreprocessLogPath ¶
func GetVarNameOfFunc ¶
func GuaranteeInInstrument ¶
func GuaranteeInInstrument()
func GuaranteeInPreprocess ¶
func GuaranteeInPreprocess()
func HasGoBuildComment ¶
func HasReceiver ¶
func HashStruct ¶
func InInstrument ¶
func InInstrument() bool
func InPreprocess ¶
func InPreprocess() bool
func InitOptions ¶
func InitOptions() (err error)
func InterfaceType ¶
func InterfaceType() *dst.InterfaceType
func IsCompileCommand ¶
func IsEllipsis ¶
func IsExistGoMod ¶
func IsInterfaceType ¶
func IsUnusedIdent ¶
func MatchVersion ¶ added in v0.0.2
MatchVersion checks if the version string matches the version range in the rule. The version range is in format [start, end), where start is inclusive and end is exclusive. If the rule version string is empty, it always matches.
func ParseAstFromFile ¶
ParseAstFromFile parses the AST from complete source file.
func ParseAstFromFileFast ¶ added in v0.0.2
func ParseAstFromSnippet ¶
ParseAstFromSnippet parses the AST from incomplete source code snippet.
func ParseAstFromSource ¶
ParseAstFromSource parses the AST from complete source code.
func ParseOptions ¶
func ParseOptions()
func PrintTheVersion ¶
func PrintTheVersion()
func RemoveGoBuildComment ¶
func RenamePackage ¶
func ReturnStmt ¶
func ReturnStmt(results []dst.Expr) *dst.ReturnStmt
func SaveDebugFile ¶
func SelectorExpr ¶
func SelectorExpr(x dst.Expr, sel string) *dst.SelectorExpr
func SwitchCase ¶
func TypeAssertExpr ¶
Types ¶
This section is empty.