From 472947468d9571f86c2fde301a04478f22b3544b Mon Sep 17 00:00:00 2001 From: Dmitry Vyukov Date: Tue, 11 Sep 2018 13:21:56 +0200 Subject: pkg/vcs: add openbsd support This just says that we want to use git to checkout OpenBSD without any special/complex features. Update #712 --- pkg/vcs/akaros.go | 4 ++-- pkg/vcs/fuchsia.go | 2 +- pkg/vcs/git.go | 6 +----- pkg/vcs/openbsd.go | 55 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ pkg/vcs/vcs.go | 6 ++++-- 5 files changed, 63 insertions(+), 10 deletions(-) create mode 100644 pkg/vcs/openbsd.go (limited to 'pkg') 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 { -- cgit mrf-deployment