diff options
author | Egor Kovetskiy | 2018-06-19 23:22:21 +0300 |
---|---|---|
committer | Egor Kovetskiy | 2018-06-19 23:22:21 +0300 |
commit | baa087b77c8b454e759573ce3fb503533ad8d605 (patch) | |
tree | 58681635410a2bfe28c56af4147d87a6690ae828 | |
parent | ecb1f4fb5793774645818fde3753612b8d6adfc9 (diff) | |
download | aur-goimports-improved-git.tar.gz |
goimports-improved-git: new patch
-rw-r--r-- | .SRCINFO | 2 | ||||
-rw-r--r-- | PKGBUILD | 58 | ||||
-rw-r--r-- | fix-package-name.patch | 39 |
3 files changed, 58 insertions, 41 deletions
@@ -1,5 +1,5 @@ # Generated by mksrcinfo v8 -# Mon Feb 26 12:48:46 UTC 2018 +# Tue Jun 19 20:22:19 UTC 2018 pkgbase = goimports-improved-git pkgdesc = goimports that doesn't write package name before import path pkgver = autogenerated @@ -8,17 +8,17 @@ license=('GPL') depends=( ) makedepends=( - 'go' - 'git' + 'go' + 'git' ) source=( - "$pkgname::git://github.com/golang/tools#branch=${BRANCH:-master}" + "$pkgname::git://github.com/golang/tools#branch=${BRANCH:-master}" "fix-package-name.patch" ) md5sums=( - 'SKIP' + 'SKIP' 'SKIP' ) @@ -26,44 +26,44 @@ backup=( ) pkgver() { - if [[ "$PKGVER" ]]; then - echo "$PKGVER" - return - fi + if [[ "$PKGVER" ]]; then + echo "$PKGVER" + return + fi - cd "$srcdir/$pkgname" - local date=$(git log -1 --format="%cd" --date=short | sed s/-//g) - local count=$(git rev-list --count HEAD) - local commit=$(git rev-parse --short HEAD) - echo "$date.${count}_$commit" + cd "$srcdir/$pkgname" + local date=$(git log -1 --format="%cd" --date=short | sed s/-//g) + local count=$(git rev-list --count HEAD) + local commit=$(git rev-parse --short HEAD) + echo "$date.${count}_$commit" } build() { - if [ -L "$srcdir/$pkgname" ]; then - rm "$srcdir/$pkgname" -rf - mv "$srcdir/go/src/$pkgname/" "$srcdir/$pkgname" - fi + if [ -L "$srcdir/$pkgname" ]; then + rm "$srcdir/$pkgname" -rf + mv "$srcdir/go/src/$pkgname/" "$srcdir/$pkgname" + fi - rm -rf "$srcdir/go/src" - mkdir -p "$srcdir/go/src/golang.org/x/" + rm -rf "$srcdir/go/src" + mkdir -p "$srcdir/go/src/golang.org/x/" - mv "$srcdir/$pkgname" "$srcdir/go/src/golang.org/x/tools/" + mv "$srcdir/$pkgname" "$srcdir/go/src/golang.org/x/tools/" cd "$srcdir/go/src/golang.org/x/tools/" - git submodule update --init + git submodule update --init - export GOPATH="$srcdir/go" - export GOBIN="" + export GOPATH="$srcdir/go" + export GOBIN="" patch -p1 < $srcdir/../fix-package-name.patch - go get -v \ - -gcflags "-trimpath $GOPATH/src" \ - ./cmd/goimports + go get -v \ + -gcflags "-trimpath $GOPATH/src" \ + ./cmd/goimports } package() { - find "$srcdir/go/bin/" -type f -executable | while read filename; do - install -DT "$filename" "$pkgdir/usr/bin/$(basename $filename)" - done + find "$srcdir/go/bin/" -type f -executable | while read filename; do + install -DT "$filename" "$pkgdir/usr/bin/$(basename $filename)" + done } diff --git a/fix-package-name.patch b/fix-package-name.patch index 404156764fd1..5e38bc7f04a1 100644 --- a/fix-package-name.patch +++ b/fix-package-name.patch @@ -1,8 +1,17 @@ diff --git a/imports/fix.go b/imports/fix.go -index de660879..380ec8e9 100644 +index ebb228d1..42c2cf67 100644 --- a/imports/fix.go +++ b/imports/fix.go -@@ -908,9 +908,19 @@ func findImportGoPath(pkgName string, symbols map[string]bool, filename string) +@@ -350,7 +350,7 @@ func fixImports(fset *token.FileSet, f *ast.File, filename string) (added []stri + }() + + for result := range results { +- if result.name != "" { ++ if result.name != "" && isNeedToRename(result.ipath, result.name) { + astutil.AddNamedImport(fset, f, result.name, result.ipath) + } else { + astutil.AddImport(fset, f, result.ipath) +@@ -951,14 +951,27 @@ func findImportGoPath(ctx context.Context, pkgName string, symbols map[string]bo if pkg == nil { continue } @@ -10,16 +19,24 @@ index de660879..380ec8e9 100644 // If the package name in the source doesn't match the import path's base, // return true so the rewriter adds a name (import foo "github.com/bar/go-foo") - needsRename := path.Base(pkg.importPath) != pkgName -+ baseName := path.Base(pkg.importPath) -+ for _, prefix := range []string{"go.", "go-"} { -+ baseName = strings.TrimPrefix(baseName, prefix) -+ } -+ for _, suffix := range []string{".go", "-go"} { -+ baseName = strings.TrimSuffix(baseName, suffix) -+ } -+ -+ needsRename := baseName != pkgName ++ needsRename := isNeedToRename(pkg.importPath, pkgName) + return pkg.importPathShort, needsRename, nil } return "", false, nil + } + ++func isNeedToRename(ipath string, pkgName string) bool { ++ baseName := path.Base(ipath) ++ for _, prefix := range []string{"go.", "go-"} { ++ baseName = strings.TrimPrefix(baseName, prefix) ++ } ++ for _, suffix := range []string{".go", "-go"} { ++ baseName = strings.TrimSuffix(baseName, suffix) ++ } ++ return baseName != pkgName ++} ++ + // pkgIsCandidate reports whether pkg is a candidate for satisfying the + // finding which package pkgIdent in the file named by filename is trying + // to refer to. |