Skip to content
This repository was archived by the owner on Aug 24, 2024. It is now read-only.
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions .travis.yml
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
matrix:
include:
- language: go
go: 1.12.x
- language: go
go: 1.13.x
- language: go
go: 1.14.x
- language: go
go: 1.15.x

env:
GO111MODULE=on
Expand Down
2 changes: 1 addition & 1 deletion Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ GIT_COMMIT:=$(shell git rev-list -1 HEAD)
GIT_LAST_TAG:=$(shell git describe --abbrev=0 --tags)
GIT_EXACT_TAG:=$(shell git name-rev --name-only --tags HEAD)

COMMANDS_PATH:=github.com/MichaelMure/git-bug-migration/commands
COMMANDS_PATH:=main
LDFLAGS:=-X '${COMMANDS_PATH}.GitCommit=${GIT_COMMIT}' \
-X '${COMMANDS_PATH}.GitLastTag=${GIT_LAST_TAG}' \
-X '${COMMANDS_PATH}.GitExactTag=${GIT_EXACT_TAG}'
Expand Down
106 changes: 0 additions & 106 deletions commands/root.go

This file was deleted.

116 changes: 116 additions & 0 deletions env.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,116 @@
package main

import (
"fmt"
"io"
"os"
stdpath "path"
"path/filepath"

"github.com/pkg/errors"
"github.com/spf13/cobra"
)

// Env is the environment of a command
type Env struct {
out out
err out

repoPath string
}

func newEnv() *Env {
return &Env{
out: out{Writer: os.Stdout},
err: out{Writer: os.Stderr},
}
}

type out struct {
io.Writer
}

func (o out) Printf(format string, a ...interface{}) {
_, _ = fmt.Fprintf(o, format, a...)
}

func (o out) Print(a ...interface{}) {
_, _ = fmt.Fprint(o, a...)
}

func (o out) Println(a ...interface{}) {
_, _ = fmt.Fprintln(o, a...)
}

// findRepo is a pre-run function that find the repository
func findRepo(env *Env) func(*cobra.Command, []string) error {
return func(cmd *cobra.Command, args []string) error {
cwd, err := os.Getwd()
if err != nil {
return fmt.Errorf("unable to get the current working directory: %q", err)
}

env.repoPath, err = detectGitPath(cwd)
if err != nil {
return errors.Wrap(err, "can't find the git repository")
}

return nil
}
}

func detectGitPath(path string) (string, error) {
// normalize the path
path, err := filepath.Abs(path)
if err != nil {
return "", err
}

for {
fi, err := os.Stat(stdpath.Join(path, ".git"))
if err == nil {
if !fi.IsDir() {
return "", fmt.Errorf(".git exist but is not a directory")
}
return stdpath.Join(path, ".git"), nil
}
if !os.IsNotExist(err) {
// unknown error
return "", err
}

// detect bare repo
ok, err := isGitDir(path)
if err != nil {
return "", err
}
if ok {
return path, nil
}

if parent := filepath.Dir(path); parent == path {
return "", fmt.Errorf(".git not found")
} else {
path = parent
}
}
}

func isGitDir(path string) (bool, error) {
markers := []string{"HEAD", "objects", "refs"}

for _, marker := range markers {
_, err := os.Stat(stdpath.Join(path, marker))
if err == nil {
continue
}
if !os.IsNotExist(err) {
// unknown error
return false, err
} else {
return false, nil
}
}

return true, nil
}
2 changes: 2 additions & 0 deletions go.sum
Original file line number Diff line number Diff line change
Expand Up @@ -58,6 +58,7 @@ github.com/go-kit/kit v0.8.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2
github.com/go-logfmt/logfmt v0.3.0/go.mod h1:Qt1PoO58o5twSAckw1HlFXLmHsOX5/0LbT9GBnD5lWE=
github.com/go-logfmt/logfmt v0.4.0/go.mod h1:3RMwSq7FuexP4Kalkev3ejPJsZTpXXBr9+V4qmtdjCk=
github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY=
github.com/godbus/dbus v0.0.0-20190726142602-4481cbc300e2 h1:ZpnhV/YsD2/4cESfV5+Hoeu/iUR3ruzNvZ+yQfO03a0=
github.com/godbus/dbus v0.0.0-20190726142602-4481cbc300e2/go.mod h1:bBOAhwG1umN6/6ZUMtDFBMQR8jRg9O75tm9K00oMsK4=
github.com/gogo/protobuf v1.1.1/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ=
github.com/gogo/protobuf v1.2.1/go.mod h1:hp+jE20tsWTFYpLwKvXlhS1hjn+gTNwPg2I6zVXpSg4=
Expand All @@ -76,6 +77,7 @@ github.com/gorilla/websocket v1.4.0/go.mod h1:E7qHFY5m1UJ88s3WnNqhKjPHQ0heANvMoA
github.com/grpc-ecosystem/go-grpc-middleware v1.0.0/go.mod h1:FiyG127CGDf3tlThmgyCl78X/SZQqEOJBCDaAfeWzPs=
github.com/grpc-ecosystem/go-grpc-prometheus v1.2.0/go.mod h1:8NvIoxWQoOIhqOTXgfV/d3M/q6VIi02HzZEHgUlZvzk=
github.com/grpc-ecosystem/grpc-gateway v1.9.0/go.mod h1:vNeuVxBJEsws4ogUvrchl83t/GYV9WGTSLVdBhOQFDY=
github.com/gsterjov/go-libsecret v0.0.0-20161001094733-a6f4afe4910c h1:6rhixN/i8ZofjG1Y75iExal34USq5p+wiN1tpie8IrU=
github.com/gsterjov/go-libsecret v0.0.0-20161001094733-a6f4afe4910c/go.mod h1:NMPJylDgVpX0MLRlPy15sqSwOFv/U1GZ2m21JhFfek0=
github.com/hashicorp/go-cleanhttp v0.5.1 h1:dH3aiDG9Jvb5r5+bYHsikaOUIpcM0xvgMXVoDkXMzJM=
github.com/hashicorp/go-cleanhttp v0.5.1/go.mod h1:JpRdi6/HCYpAwUzNwuwqhbovhLtngrth3wmdIIUrZ80=
Expand Down
15 changes: 4 additions & 11 deletions main.go
Original file line number Diff line number Diff line change
@@ -1,16 +1,9 @@
package main

import (
"github.com/MichaelMure/git-bug-migration/commands"
)

type Migration interface {
Name() string
Description() string
NeedToRun() bool
Run() error
}
import "os"

func main() {
commands.Execute()
if err := NewRootCommand().Execute(); err != nil {
os.Exit(1)
}
}
6 changes: 6 additions & 0 deletions migration.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
package main

type Migration interface {
Description() string
Run(repoPath string) error
}
File renamed without changes.
10 changes: 5 additions & 5 deletions migration01/after/bug/bug.go → migration1/after/bug/bug.go
Original file line number Diff line number Diff line change
Expand Up @@ -8,11 +8,11 @@ import (

"github.com/pkg/errors"

"github.com/MichaelMure/git-bug-migration/migration01/after/entity"
"github.com/MichaelMure/git-bug-migration/migration01/after/identity"
"github.com/MichaelMure/git-bug-migration/migration01/after/repository"
"github.com/MichaelMure/git-bug-migration/migration01/after/util/git"
"github.com/MichaelMure/git-bug-migration/migration01/after/util/lamport"
"github.com/MichaelMure/git-bug-migration/migration1/after/entity"
"github.com/MichaelMure/git-bug-migration/migration1/after/identity"
"github.com/MichaelMure/git-bug-migration/migration1/after/repository"
"github.com/MichaelMure/git-bug-migration/migration1/after/util/git"
"github.com/MichaelMure/git-bug-migration/migration1/after/util/lamport"
)

const bugsRefPattern = "refs/bugs/"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,8 @@ import (

"github.com/pkg/errors"

"github.com/MichaelMure/git-bug-migration/migration01/after/entity"
"github.com/MichaelMure/git-bug-migration/migration01/after/repository"
"github.com/MichaelMure/git-bug-migration/migration1/after/entity"
"github.com/MichaelMure/git-bug-migration/migration1/after/repository"
)

// Fetch retrieve updates from a remote
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
package bug

import (
"github.com/MichaelMure/git-bug-migration/migration01/after/repository"
"github.com/MichaelMure/git-bug-migration/migration1/after/repository"
)

// ClockLoader is the repository.ClockLoader for the Bug entity
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,10 +3,10 @@ package bug
import (
"github.com/dustin/go-humanize"

"github.com/MichaelMure/git-bug-migration/migration01/after/entity"
"github.com/MichaelMure/git-bug-migration/migration01/after/identity"
"github.com/MichaelMure/git-bug-migration/migration01/after/util/git"
"github.com/MichaelMure/git-bug-migration/migration01/after/util/timestamp"
"github.com/MichaelMure/git-bug-migration/migration1/after/entity"
"github.com/MichaelMure/git-bug-migration/migration1/after/identity"
"github.com/MichaelMure/git-bug-migration/migration1/after/util/git"
"github.com/MichaelMure/git-bug-migration/migration1/after/util/timestamp"
)

// Comment represent a comment in a Bug
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
package bug

import (
"github.com/MichaelMure/git-bug-migration/migration01/after/identity"
"github.com/MichaelMure/git-bug-migration/migration1/after/identity"
)

// EnsureIdentities walk the graph of operations and make sure that all Identity
Expand Down
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
package bug

import (
"github.com/MichaelMure/git-bug-migration/migration01/after/entity"
"github.com/MichaelMure/git-bug-migration/migration01/after/repository"
"github.com/MichaelMure/git-bug-migration/migration01/after/util/lamport"
"github.com/MichaelMure/git-bug-migration/migration1/after/entity"
"github.com/MichaelMure/git-bug-migration/migration1/after/repository"
"github.com/MichaelMure/git-bug-migration/migration1/after/util/lamport"
)

type Interface interface {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ import (

fcolor "github.com/fatih/color"

"github.com/MichaelMure/git-bug-migration/migration01/after/util/text"
"github.com/MichaelMure/git-bug-migration/migration1/after/util/text"
)

type Label string
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,11 +4,11 @@ import (
"encoding/json"
"fmt"

"github.com/MichaelMure/git-bug-migration/migration01/after/entity"
"github.com/MichaelMure/git-bug-migration/migration01/after/identity"
"github.com/MichaelMure/git-bug-migration/migration01/after/util/git"
"github.com/MichaelMure/git-bug-migration/migration01/after/util/text"
"github.com/MichaelMure/git-bug-migration/migration01/after/util/timestamp"
"github.com/MichaelMure/git-bug-migration/migration1/after/entity"
"github.com/MichaelMure/git-bug-migration/migration1/after/identity"
"github.com/MichaelMure/git-bug-migration/migration1/after/util/git"
"github.com/MichaelMure/git-bug-migration/migration1/after/util/text"
"github.com/MichaelMure/git-bug-migration/migration1/after/util/timestamp"
)

var _ Operation = &AddCommentOperation{}
Expand Down
Loading