builder

package
v0.3.0-beta Latest Latest
Warning

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

Go to latest
Published: Apr 16, 2018 License: MIT Imports: 15 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	ErrOutsideRoot = errors.New("file is outside the root directory")
)

Functions

func IsGofiles

func IsGofiles(files []string) (bool, error)

全てのファイルが".go"で終わるファイルなら、trueを返す

Types

type LoggerFlags

type LoggerFlags struct {
	UseNonStandardRuntime bool
}

LoggerFlags are static settings of tracer/logger package. tracer/logger package can increase performance by some settings. LoggerFlags.EditContent() can change settings by editing source codes on tracer/logger package.

Specification:

Flag Definition Line:
  * Flag MUST be a constant instead of variable.
  * Flag type MUST be bool.
  * Flag definition line format is "{flagName} = false //@@GAT#FLAG#"

Switchable Comment:
  * Comment MUST have a prefix of "//@@GAT@{flagName}@"
  * If the specific flag is true, comments will be removed and commented out codes can be executable.

func (LoggerFlags) EditContent

func (f LoggerFlags) EditContent(content string) string

type RecursiveImporter

type RecursiveImporter struct {
	IgnorePkgs map[string]bool
	// contains filtered or unexported fields
}

依存関係のあるパッケージを全てインポートする。

func (*RecursiveImporter) Import

func (imper *RecursiveImporter) Import(path string, baseDir string) error

指定されたパッケージと、それに依存しているパッケージをインポートする。

func (*RecursiveImporter) ImportFromFile

func (imper *RecursiveImporter) ImportFromFile(gofile string) error

指定したファイルが依存している全てのパッケージをインポートする。

func (*RecursiveImporter) ImportFromPkg

func (imper *RecursiveImporter) ImportFromPkg(path string) error

指定したパッケージと、そのパッケージが依存している全てのパッケージをインポートする。

func (RecursiveImporter) Pkgs

func (imper RecursiveImporter) Pkgs() map[string]*build.Package

type RepoBuilder

type RepoBuilder struct {
	// 変更前のGOPATH。
	// 絶対パスからimport pathに変換するために使用する。
	OrigGopath string
	// トレース用コード追加済みのstandard packagesの出力先
	Goroot string
	// トレース用コード追加済みのnon-standard packagesの出力先
	Gopath string

	// これらのパッケージと、これらが依存しているパッケージには、トレース用のコードを追加しない
	IgnorePkgs map[string]bool
	// これらのファイルに書かれた関数は、トレース対象にしない
	IgnoreFiles   map[string]bool
	IgnoreStdPkgs bool

	// settings of the tracer/logger package。
	LoggerFlags LoggerFlags

	Editor srceditor.CodeEditor
}

トレース用のコードを追加したレポジトリを構築する。 編集後のコードは、Gorootとgopathで指定したディレクトリの下に出力される。 オリジナルのコードは改変しない。

func (*RepoBuilder) EditAll

func (b *RepoBuilder) EditAll(targets []string) error

func (*RepoBuilder) EditFiles

func (b *RepoBuilder) EditFiles(gofiles []string) error

指定されたソースコードと依存しているパッケージに、トレース用コードを追加する。

func (*RepoBuilder) EditPackages

func (b *RepoBuilder) EditPackages(pkgs []string) error

指定されたパッケージとその依存に、トレース用コードを追加する。

func (*RepoBuilder) Init

func (b *RepoBuilder) Init() error

func (*RepoBuilder) MainPkgDir

func (b *RepoBuilder) MainPkgDir(gofile string) (string, error)

Jump to

Keyboard shortcuts

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