aboutsummaryrefslogtreecommitdiffstats
path: root/pkg
diff options
context:
space:
mode:
authorDmitry Vyukov <dvyukov@google.com>2018-09-11 13:21:56 +0200
committerDmitry Vyukov <dvyukov@google.com>2018-09-11 14:47:38 +0200
commit472947468d9571f86c2fde301a04478f22b3544b (patch)
tree6a37d0a3019fb746405edcb72939f36e92b3c9f9 /pkg
parent20c13d3ce56c7723a1ba203405c5d8aadb051ca5 (diff)
pkg/vcs: add openbsd support
This just says that we want to use git to checkout OpenBSD without any special/complex features. Update #712
Diffstat (limited to 'pkg')
-rw-r--r--pkg/vcs/akaros.go4
-rw-r--r--pkg/vcs/fuchsia.go2
-rw-r--r--pkg/vcs/git.go6
-rw-r--r--pkg/vcs/openbsd.go55
-rw-r--r--pkg/vcs/vcs.go6
5 files changed, 63 insertions, 10 deletions
diff --git a/pkg/vcs/akaros.go b/pkg/vcs/akaros.go
index 3ad0e72a2..aaf9d985e 100644
--- a/pkg/vcs/akaros.go
+++ b/pkg/vcs/akaros.go
@@ -16,8 +16,8 @@ type akaros struct {
func newAkaros(vm, dir string) *akaros {
return &akaros{
- git: newGit("", vm, dir),
- dropbear: newGit("", vm, filepath.Join(dir, "dropbear")),
+ git: newGit(dir),
+ dropbear: newGit(filepath.Join(dir, "dropbear")),
}
}
diff --git a/pkg/vcs/fuchsia.go b/pkg/vcs/fuchsia.go
index a6a7237f6..354be6c8d 100644
--- a/pkg/vcs/fuchsia.go
+++ b/pkg/vcs/fuchsia.go
@@ -22,7 +22,7 @@ func newFuchsia(vm, dir string) *fuchsia {
return &fuchsia{
vm: vm,
dir: dir,
- zircon: newGit("fuchsia", vm, filepath.Join(dir, "zircon")),
+ zircon: newGit(filepath.Join(dir, "zircon")),
}
}
diff --git a/pkg/vcs/git.go b/pkg/vcs/git.go
index f064dadb1..bc0e05373 100644
--- a/pkg/vcs/git.go
+++ b/pkg/vcs/git.go
@@ -20,15 +20,11 @@ import (
)
type git struct {
- os string
- vm string
dir string
}
-func newGit(os, vm, dir string) *git {
+func newGit(dir string) *git {
return &git{
- os: os,
- vm: vm,
dir: dir,
}
}
diff --git a/pkg/vcs/openbsd.go b/pkg/vcs/openbsd.go
new file mode 100644
index 000000000..fdcc648f7
--- /dev/null
+++ b/pkg/vcs/openbsd.go
@@ -0,0 +1,55 @@
+// Copyright 2018 syzkaller project authors. All rights reserved.
+// Use of this source code is governed by Apache 2 LICENSE that can be found in the LICENSE file.
+
+package vcs
+
+import (
+ "fmt"
+ "io"
+)
+
+type openbsd struct {
+ git *git
+}
+
+func newOpenBSD(vm, dir string) *openbsd {
+ return &openbsd{
+ git: newGit(dir),
+ }
+}
+
+func (ctx *openbsd) Poll(repo, branch string) (*Commit, error) {
+ return ctx.git.Poll(repo, branch)
+}
+
+func (ctx *openbsd) CheckoutBranch(repo, branch string) (*Commit, error) {
+ return nil, fmt.Errorf("not implemented for openbsd")
+}
+
+func (ctx *openbsd) CheckoutCommit(repo, commit string) (*Commit, error) {
+ return nil, fmt.Errorf("not implemented for openbsd")
+}
+
+func (ctx *openbsd) SwitchCommit(commit string) (*Commit, error) {
+ return nil, fmt.Errorf("not implemented for openbsd")
+}
+
+func (ctx *openbsd) HeadCommit() (*Commit, error) {
+ return nil, fmt.Errorf("not implemented for openbsd")
+}
+
+func (ctx *openbsd) ListRecentCommits(baseCommit string) ([]string, error) {
+ return ctx.git.ListRecentCommits(baseCommit)
+}
+
+func (ctx *openbsd) ExtractFixTagsFromCommits(baseCommit, email string) ([]FixCommit, error) {
+ return ctx.git.ExtractFixTagsFromCommits(baseCommit, email)
+}
+
+func (ctx *openbsd) Bisect(bad, good string, trace io.Writer, pred func() (BisectResult, error)) (*Commit, error) {
+ return nil, fmt.Errorf("not implemented for openbsd")
+}
+
+func (ctx *openbsd) PreviousReleaseTags(commit string) ([]string, error) {
+ return nil, fmt.Errorf("not implemented for openbsd")
+}
diff --git a/pkg/vcs/vcs.go b/pkg/vcs/vcs.go
index 8aec09100..0837dc40d 100644
--- a/pkg/vcs/vcs.go
+++ b/pkg/vcs/vcs.go
@@ -76,17 +76,19 @@ const (
func NewRepo(os, vm, dir string) (Repo, error) {
switch os {
case "linux":
- return newGit(os, vm, dir), nil
+ return newGit(dir), nil
case "akaros":
return newAkaros(vm, dir), nil
case "fuchsia":
return newFuchsia(vm, dir), nil
+ case "openbsd":
+ return newOpenBSD(vm, dir), nil
}
return nil, fmt.Errorf("vcs is unsupported for %v", os)
}
func NewSyzkallerRepo(dir string) Repo {
- return newGit("syzkaller", "", dir)
+ return newGit(dir)
}
func Patch(dir string, patch []byte) error {