Skip to content

Commit

Permalink
feat: rename migrate -> boxo-migrate, add extra pointers to output
Browse files Browse the repository at this point in the history
  • Loading branch information
guseggert committed Mar 31, 2023
1 parent b1046dd commit 1eca368
Show file tree
Hide file tree
Showing 7 changed files with 54 additions and 7 deletions.
Binary file added cmd/boxo-migrate/boxo-migrate
Binary file not shown.
25 changes: 23 additions & 2 deletions cmd/migrate/migrate.go → cmd/boxo-migrate/boxomigrate.go
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ import (
"os"
"strings"

migrate "github.com/ipfs/boxo/cmd/migrate/internal"
migrate "github.com/ipfs/boxo/cmd/boxo-migrate/internal"
"github.com/urfave/cli/v2"
)

Expand Down Expand Up @@ -64,10 +64,31 @@ func main() {
if err != nil {
return err
}

fmt.Printf("\n\n")

if !dryrun {
err := migrator.GoGet("github.com/ipfs/boxo@v0.8.0-rc3")
if err != nil {
return err
}
}

if err := migrator.UpdateImports(); err != nil {
return err
}

if dryrun {
return nil
}

if err := migrator.GoModTidy(); err != nil {
return err
}

fmt.Printf("Your code has been successfully updated. Note that you might still need to manually fix up parts of your code.\n\n")
fmt.Printf("You should also consider running the 'boxo-migrate check-dependencies' command to see if you have any other dependencies on migrated code.\n\n")

return nil
},
},
Expand All @@ -88,7 +109,7 @@ func main() {
}
if len(deps) > 0 {
fmt.Println(strings.Join([]string{
"You still have dependencies on repos which have migrated to go-libipfs.",
"You still have dependencies on repos which have migrated to Boxo.",
"You should consider not having these dependencies to avoid multiple versions of the same code.",
"You can use 'go mod why' or 'go mod graph' to find the reason for these dependencies.",
"",
Expand Down
2 changes: 1 addition & 1 deletion cmd/migrate/go.mod → cmd/boxo-migrate/go.mod
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
module github.com/ipfs/boxo/cmd/migrate
module github.com/ipfs/boxo/cmd/boxo-migrate

go 1.19

Expand Down
File renamed without changes.
File renamed without changes.
File renamed without changes.
Original file line number Diff line number Diff line change
Expand Up @@ -106,6 +106,17 @@ func (m *Migrator) run(cmdName string, args ...string) (int, string, string, err
return state.ExitCode(), strings.TrimSpace(stdout.String()), strings.TrimSpace(stderr.String()), nil
}

func (m *Migrator) runOrErr(cmdName string, args ...string) (string, error) {
exitCode, stdout, stderr, err := m.run(cmdName, args...)
if err != nil {
return "", err
}
if exitCode != 0 {
return "", fmt.Errorf("non-zero exit code %d, stderr:\n%s", exitCode, stderr)
}
return stdout, nil
}

// FindMigratedDependencies returns a list of dependent module versions like 'module v0.1.0' that have been migrated to go-libipfs.
func (m *Migrator) FindMigratedDependencies() ([]string, error) {
var modVersions []string
Expand All @@ -129,13 +140,10 @@ func (m *Migrator) FindMigratedDependencies() ([]string, error) {
}

func (m *Migrator) findSourceFiles() ([]string, error) {
exitCode, stdout, stderr, err := m.run("go", "list", "-json", "./...")
stdout, err := m.runOrErr("go", "list", "-json", "./...")
if err != nil {
return nil, fmt.Errorf("finding source files: %w", err)
}
if exitCode != 0 {
return nil, fmt.Errorf("non-zero exit code %d finding source files, stderr:\n%s", exitCode, stderr)
}

var files []string
dec := json.NewDecoder(strings.NewReader(stdout))
Expand Down Expand Up @@ -166,3 +174,21 @@ func (m *Migrator) UpdateImports() error {
}
return nil
}

func (m *Migrator) GoModTidy() error {
fmt.Printf("\n\nRunning 'go mod tidy'...\n\n")
_, err := m.runOrErr("go", "mod", "tidy")
if err != nil {
return fmt.Errorf("running 'go mod tidy': %w", err)
}
return nil
}

func (m *Migrator) GoGet(mod string) error {
fmt.Printf("Adding module: %q\n\n", mod)
_, err := m.runOrErr("go", "get", mod)
if err != nil {
return fmt.Errorf("running 'go get %s': %w", mod, err)
}
return nil
}

0 comments on commit 1eca368

Please sign in to comment.