plugin struct

Methods:

Name


Returns:
  • string

Show/Hide Method Body
{ return "test" }

Priority


Returns:
  • int

Show/Hide Method Body
{ return 0 }

Build


Parameters:
  • raw json.RawMessage

Returns:
  • error

Show/Hide Method Body
{
	cfg := struct {
		Packages []string `json:"packages"`
	}{Packages: []string{"./..."}}
	if len(raw) > 0 {
		_ = json.Unmarshal(raw, &cfg)
	}
	args := append([]string{"test"}, cfg.Packages...)
	cmd := exec.Command("go", args...)
	output, err := cmd.CombinedOutput()
	log.Printf("test: %s", strings.TrimSpace(string(output)))
	return err
}

ShouldRebuild


Parameters:
  • path string

Returns:
  • bool

Show/Hide Method Body
{
	return strings.HasSuffix(path, "_test.go")
}

init function

Show/Hide Function Body
{ plugins.Register(&plugin{}) }

TestShouldRebuild function

TestShouldRebuild verifies that the test plugin triggers rebuilds for Go test

files only.

Parameters:

  • t *testing.T
Show/Hide Function Body
{
	p := &plugin{}
	if !p.ShouldRebuild("foo_test.go") {
		t.Fatalf("expected rebuild for _test.go files")
	}
	if p.ShouldRebuild("main.go") {
		t.Fatalf("non-test files should not trigger rebuild")
	}
}

encoding/json import

Import example:

import "encoding/json"

log import

Import example:

import "log"

os/exec import

Import example:

import "os/exec"

strings import

Import example:

import "strings"

github.com/rfwlab/rfw/cmd/rfw/plugins import

Import example:

import "github.com/rfwlab/rfw/cmd/rfw/plugins"

testing import

Import example:

import "testing"