shared

package
v0.2.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Sep 28, 2024 License: Apache-2.0 Imports: 18 Imported by: 0

Documentation

Index

Constants

View Source
const (
	IdentNil    = "nil"
	IdentTrue   = "true"
	IdentFalse  = "false"
	IdentIgnore = "_"
)
View Source
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.

View Source
const (
	TInstrument = "instrument"
	TPreprocess = "preprocess"
)
View Source
const DebugLogFile = "debug.log"
View Source
const GoBuildIgnoreComment = "//go:build ignore"
View Source
const GoModFile = "go.mod"
View Source
const TempBuildDir = ".otel-build"

Variables

View Source
var BuildArgs []string

BuildArgs are the arguments to pass to the go build command.

View Source
var Debug = false

Debug true means debug mode.

View Source
var DebugLog = false

DebugLog true means debug log is enabled.

View Source
var DisableRules = "testrule"

DisableRules enable rules by name(* for all, comma separated names).

View Source
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.

View Source
var PrintVersion = false

Version

View Source
var Restore = false

Restore true means restore all instrumentations.

View Source
var TheName = "otelbuild"
View Source
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.

View Source
var Verbose = true

Verbose true means print verbose log.

Functions

func AddImportForcely

func AddImportForcely(root *dst.File, path string)

func AddStructField

func AddStructField(decl dst.Decl, name string, typ string)

func AddressOf

func AddressOf(expr dst.Expr) *dst.UnaryExpr

AST Construction

func ArrayType

func ArrayType(elem dst.Expr) *dst.ArrayType

func AssignStmt

func AssignStmt(lhs, rhs dst.Expr) *dst.AssignStmt

func Block

func Block(stmt dst.Stmt) *dst.BlockStmt

func BlockStmts

func BlockStmts(stmts ...dst.Stmt) *dst.BlockStmt

func BoolFalse

func BoolFalse() *dst.BasicLit

func BoolTrue

func BoolTrue() *dst.BasicLit

func CallTo

func CallTo(name string, args []dst.Expr) *dst.CallExpr

func DeferStmt

func DeferStmt(call *dst.CallExpr) *dst.DeferStmt

func DefineStmts

func DefineStmts(lhs, rhs []dst.Expr) *dst.AssignStmt

func DereferenceOf

func DereferenceOf(expr dst.Expr) dst.Expr

func EmptyStmt

func EmptyStmt() *dst.EmptyStmt

func ExprStmt

func ExprStmt(expr dst.Expr) *dst.ExprStmt

func Exprs

func Exprs(exprs ...dst.Expr) []dst.Expr

func ExtractVersion added in v0.0.2

func ExtractVersion(path string) string

func FindFuncDecl

func FindFuncDecl(root *dst.File, name string) *dst.FuncDecl

func GetGoModPath

func GetGoModPath() (string, error)

GetGoModPath returns the absolute path of go.mod file, if any.

func GetInstrumentLogPath

func GetInstrumentLogPath(name string) string

func GetLogPath

func GetLogPath(name string) string

func GetPreprocessLogPath

func GetPreprocessLogPath(name string) string

func GetVarNameOfFunc

func GetVarNameOfFunc(fn string) string

func GuaranteeInInstrument

func GuaranteeInInstrument()

func GuaranteeInPreprocess

func GuaranteeInPreprocess()

func HasGoBuildComment

func HasGoBuildComment(text string) bool

func HasReceiver

func HasReceiver(fn *dst.FuncDecl) bool

func HashStruct

func HashStruct(st interface{}) (uint64, error)

func Ident

func Ident(name string) *dst.Ident

func IfNotNilStmt

func IfNotNilStmt(cond dst.Expr, body, elseBody *dst.BlockStmt) *dst.IfStmt

func IfStmt

func IfStmt(init dst.Stmt, cond dst.Expr, body, elseBody *dst.BlockStmt) *dst.IfStmt

func InInstrument

func InInstrument() bool

func InPreprocess

func InPreprocess() bool

func IndexExpr

func IndexExpr(x dst.Expr, index dst.Expr) *dst.IndexExpr

func InitOptions

func InitOptions() (err error)

func IntLit

func IntLit(value int) *dst.BasicLit

func InterfaceType

func InterfaceType() *dst.InterfaceType

func IsCompileCommand

func IsCompileCommand(line string) bool

func IsEllipsis

func IsEllipsis(typ dst.Expr) bool

func IsExistGoMod

func IsExistGoMod() (bool, error)

func IsGoFile

func IsGoFile(path string) bool

func IsInterfaceType

func IsInterfaceType(typ dst.Expr) bool

func IsUnusedIdent

func IsUnusedIdent(ident *dst.Ident) bool

func MakeUnusedIdent

func MakeUnusedIdent(ident *dst.Ident) *dst.Ident

func MatchFuncDecl

func MatchFuncDecl(decl dst.Decl, function string, receiverType string) bool

func MatchStructDecl

func MatchStructDecl(decl dst.Decl, structType string) bool

func MatchVersion added in v0.0.2

func MatchVersion(version string, ruleVersion string) (bool, error)

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 NewField

func NewField(name string, typ dst.Expr) *dst.Field

func NewVarDecl

func NewVarDecl(name string, paramTypes *dst.FieldList) *dst.GenDecl

func ParenExpr

func ParenExpr(x dst.Expr) *dst.ParenExpr

func ParseAstFromFile

func ParseAstFromFile(filePath string) (*dst.File, error)

ParseAstFromFile parses the AST from complete source file.

func ParseAstFromFileFast added in v0.0.2

func ParseAstFromFileFast(filePath string) (*dst.File, error)

func ParseAstFromSnippet

func ParseAstFromSnippet(codeSnippnet string) ([]dst.Stmt, error)

ParseAstFromSnippet parses the AST from incomplete source code snippet.

func ParseAstFromSource

func ParseAstFromSource(source string) (*dst.File, error)

ParseAstFromSource parses the AST from complete source code.

func ParseOptions

func ParseOptions()

func PrintTheVersion

func PrintTheVersion()

func RemoveGoBuildComment

func RemoveGoBuildComment(text string) string

func RenamePackage

func RenamePackage(source, newPkgName string) string

func ReturnStmt

func ReturnStmt(results []dst.Expr) *dst.ReturnStmt

func SaveDebugFile

func SaveDebugFile(prefix string, path string)

func SelectorExpr

func SelectorExpr(x dst.Expr, sel string) *dst.SelectorExpr

func Stmts

func Stmts(stmts ...dst.Stmt) []dst.Stmt

func StringLit

func StringLit(value string) *dst.BasicLit

func SwitchCase

func SwitchCase(list []dst.Expr, stmts []dst.Stmt) *dst.CaseClause

func TypeAssertExpr

func TypeAssertExpr(x dst.Expr, typ dst.Expr) *dst.TypeAssertExpr

func WriteAstToFile

func WriteAstToFile(astRoot *dst.File, filePath string) (string, error)

WriteAstToFile writes the AST to source file.

Types

This section is empty.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL