Skip to content

Commit

Permalink
refactor: extract loop to try https then fallback to http
Browse files Browse the repository at this point in the history
  • Loading branch information
xlgmokha committed Aug 31, 2021
1 parent bbb12a3 commit ee44975
Showing 1 changed file with 23 additions and 21 deletions.
44 changes: 23 additions & 21 deletions go_modules/helpers/importresolver/main.go
@@ -1,6 +1,8 @@
package importresolver

import (
"errors"
"fmt"
"io/ioutil"
"strings"

Expand All @@ -12,32 +14,32 @@ type Args struct {
}

func VCSRemoteForImport(args *Args) (interface{}, error) {
local, err := ioutil.TempDir("", "unused-vcs-local-dir")
if err != nil {
return nil, err
}

return resolveDestinationUrlFrom(args.Import, local)
}

func resolveDestinationUrlFrom(remote string, local string) (interface{}, error) {
remote := args.Import
scheme := strings.Split(remote, ":")[0]
switch scheme {
case "http", "https":
repo, err := vcs.NewRepo(remote, local)
if err != nil {
return nil, err
}
return repo.Remote(), nil
return resolve(remote)
default:
repo, err := vcs.NewRepo("https://"+remote, local)
if err != nil {
repo, err := vcs.NewRepo("http://"+remote, local)
if err != nil {
return nil, err
schemes := []string{"https://", "http://"}
for _, scheme := range schemes {
repo, err := resolve(scheme + remote)
if err == nil {
return repo, nil
}
return repo.Remote(), nil
}
return repo.Remote(), nil
return nil, errors.New(fmt.Sprintf("Could not resolve url for: %v", remote))
}
}

func resolve(remote string) (interface{}, error) {
local, err := ioutil.TempDir("", "unused-vcs-local-dir")
if err != nil {
return nil, err
}

repo, err := vcs.NewRepo(remote, local)
if err != nil {
return nil, err
}
return repo.Remote(), nil
}

0 comments on commit ee44975

Please sign in to comment.