From 7d3575b3624c39f26c5f7a1646ebe2f78920f04a Mon Sep 17 00:00:00 2001
From: Edgar Lee <edgar.lee@docker.com>
Date: Thu, 1 Jun 2017 16:27:17 -0700
Subject: [PATCH] Use glide to handle go dependencies

---
 .gitignore               |  2 +-
 BUILD.md                 |  2 --
 glide.lock               | 38 ++++++++++++++++++++++++++++++++++++++
 glide.yaml               | 16 ++++++++++++++++
 src/Makefile             | 12 ++----------
 src/deps                 | 18 ------------------
 src/options.go           |  2 +-
 src/tui/tcell.go         |  7 +++----
 src/util/util.go         |  4 ++--
 src/util/util_windows.go |  2 +-
 10 files changed, 64 insertions(+), 39 deletions(-)
 create mode 100644 glide.lock
 create mode 100644 glide.yaml
 delete mode 100755 src/deps

diff --git a/.gitignore b/.gitignore
index e3e9b3b8..4e88fdf8 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,7 +1,7 @@
 bin
 src/fzf/fzf-*
-gopath
 pkg
 Gemfile.lock
 .DS_Store
 doc/tags
+vendor
diff --git a/BUILD.md b/BUILD.md
index 5b04f674..f52f3950 100644
--- a/BUILD.md
+++ b/BUILD.md
@@ -10,8 +10,6 @@ Build instructions
 
 ### Using Makefile
 
-Makefile will set up and use its own `$GOPATH` under the project root.
-
 ```sh
 # Source files are located in src directory
 cd src
diff --git a/glide.lock b/glide.lock
new file mode 100644
index 00000000..dbe594f6
--- /dev/null
+++ b/glide.lock
@@ -0,0 +1,38 @@
+hash: d68dd0bd779ac4ffca1e0c49ca38d85f90d5d68fa8e2d5d7db70a8ce8c662ec1
+updated: 2017-06-01T15:48:41.653745249-07:00
+imports:
+- name: github.com/gdamore/encoding
+  version: b23993cbb6353f0e6aa98d0ee318a34728f628b9
+- name: github.com/gdamore/tcell
+  version: 44772c121bb7838819d3ba4a7e84c0c2d617328e
+  subpackages:
+  - encoding
+- name: github.com/lucasb-eyer/go-colorful
+  version: c900de9dbbc73129068f5af6a823068fc5f2308c
+- name: github.com/mattn/go-isatty
+  version: 66b8e73f3f5cda9f96b69efd03dd3d7fc4a5cdb8
+- name: github.com/mattn/go-runewidth
+  version: 14207d285c6c197daabb5c9793d63e7af9ab2d50
+- name: github.com/mattn/go-shellwords
+  version: 02e3cf038dcea8290e44424da473dd12be796a8a
+- name: golang.org/x/crypto
+  version: e1a4589e7d3ea14a3352255d04b6f1a418845e5e
+  subpackages:
+  - ssh/terminal
+- name: golang.org/x/sys
+  version: b90f89a1e7a9c1f6b918820b3daa7f08488c8594
+  subpackages:
+  - unix
+- name: golang.org/x/text
+  version: 4ee4af566555f5fbe026368b75596286a312663a
+  subpackages:
+  - encoding
+  - encoding/charmap
+  - encoding/internal
+  - encoding/internal/identifier
+  - encoding/japanese
+  - encoding/korean
+  - encoding/simplifiedchinese
+  - encoding/traditionalchinese
+  - transform
+testImports: []
diff --git a/glide.yaml b/glide.yaml
new file mode 100644
index 00000000..7103c09c
--- /dev/null
+++ b/glide.yaml
@@ -0,0 +1,16 @@
+package: github.com/junegunn/fzf
+import:
+- package: github.com/mattn/go-isatty
+  version: 66b8e73f3f5cda9f96b69efd03dd3d7fc4a5cdb8
+- package: github.com/mattn/go-runewidth
+  version: 14207d285c6c197daabb5c9793d63e7af9ab2d50
+- package: github.com/mattn/go-shellwords
+  version: 02e3cf038dcea8290e44424da473dd12be796a8a
+- package: github.com/gdamore/tcell
+  version: 44772c121bb7838819d3ba4a7e84c0c2d617328e
+  subpackages:
+  - encoding
+- package: golang.org/x/crypto
+  version: e1a4589e7d3ea14a3352255d04b6f1a418845e5e
+  subpackages:
+  - ssh/terminal
diff --git a/src/Makefile b/src/Makefile
index b8c3090c..5205b1c1 100644
--- a/src/Makefile
+++ b/src/Makefile
@@ -12,8 +12,6 @@ endif
 SOURCES     := $(wildcard *.go */*.go)
 ROOTDIR     := $(shell dirname $(realpath $(lastword $(MAKEFILE_LIST))))
 BINDIR      := $(shell dirname $(ROOTDIR))/bin
-GOPATH      := $(shell dirname $(ROOTDIR))/gopath
-SRCDIR      := $(GOPATH)/src/github.com/junegunn/fzf/src
 BINARY32    := fzf-$(GOOS)_386
 BINARY64    := fzf-$(GOOS)_amd64
 BINARYARM5  := fzf-$(GOOS)_arm5
@@ -27,7 +25,6 @@ RELEASEARM5 := fzf-$(VERSION)-$(GOOS)_arm5
 RELEASEARM6 := fzf-$(VERSION)-$(GOOS)_arm6
 RELEASEARM7 := fzf-$(VERSION)-$(GOOS)_arm7
 RELEASEARM8 := fzf-$(VERSION)-$(GOOS)_arm8
-export GOPATH
 
 # https://en.wikipedia.org/wiki/Uname
 UNAME_M := $(shell uname -m)
@@ -79,13 +76,8 @@ release-all: clean test
 	GOOS=openbsd make release
 	GOOS=windows make release
 
-$(SRCDIR):
-	mkdir -p $(shell dirname $(SRCDIR))
-	ln -s $(ROOTDIR) $(SRCDIR)
-
-deps: $(SRCDIR) $(SOURCES)
-	cd $(SRCDIR) && go get -tags "$(TAGS)"
-	./deps
+deps: $(SOURCES)
+	cd .. && go get -u github.com/Masterminds/glide && $(GOPATH)/bin/glide install
 
 test: deps
 	SHELL=/bin/sh GOOS= go test -v -tags "$(TAGS)" ./...
diff --git a/src/deps b/src/deps
deleted file mode 100755
index cdb39149..00000000
--- a/src/deps
+++ /dev/null
@@ -1,18 +0,0 @@
-#!/usr/bin/env bash
-
-if [ -z "$GOPATH" ]; then
-  echo '$GOPATH not defined'
-  exit 1
-fi
-
-reset() (
-  cd "$GOPATH/src/$1"
-  export GIT_DIR="$(pwd)/.git"
-  [ "$(git rev-parse HEAD)" = "$2" ] ||
-    (git fetch && git reset --hard "$2")
-)
-
-reset github.com/junegunn/go-isatty     66b8e73f3f5cda9f96b69efd03dd3d7fc4a5cdb8
-reset github.com/junegunn/go-runewidth  14207d285c6c197daabb5c9793d63e7af9ab2d50
-reset github.com/junegunn/go-shellwords 02e3cf038dcea8290e44424da473dd12be796a8a
-reset golang.org/x/crypto               abc5fa7ad02123a41f02bf1391c9760f7586e608
diff --git a/src/options.go b/src/options.go
index e9e2f28e..a0b28d43 100644
--- a/src/options.go
+++ b/src/options.go
@@ -12,7 +12,7 @@ import (
 	"github.com/junegunn/fzf/src/tui"
 	"github.com/junegunn/fzf/src/util"
 
-	"github.com/junegunn/go-shellwords"
+	"github.com/mattn/go-shellwords"
 )
 
 const usage = `usage: fzf [options]
diff --git a/src/tui/tcell.go b/src/tui/tcell.go
index 3a8c7655..e66ed2f0 100644
--- a/src/tui/tcell.go
+++ b/src/tui/tcell.go
@@ -8,11 +8,10 @@ import (
 
 	"runtime"
 
-	// https://github.com/gdamore/tcell/pull/135
-	"github.com/junegunn/tcell"
-	"github.com/junegunn/tcell/encoding"
+	"github.com/gdamore/tcell"
+	"github.com/gdamore/tcell/encoding"
 
-	"github.com/junegunn/go-runewidth"
+	"github.com/mattn/go-runewidth"
 )
 
 func HasFullscreenRenderer() bool {
diff --git a/src/util/util.go b/src/util/util.go
index 15ec0ad8..867935ac 100644
--- a/src/util/util.go
+++ b/src/util/util.go
@@ -5,8 +5,8 @@ import (
 	"os"
 	"time"
 
-	"github.com/junegunn/go-isatty"
-	"github.com/junegunn/go-runewidth"
+	"github.com/mattn/go-isatty"
+	"github.com/mattn/go-runewidth"
 )
 
 var _runeWidths = make(map[rune]int)
diff --git a/src/util/util_windows.go b/src/util/util_windows.go
index 06644167..1bf8f7aa 100644
--- a/src/util/util_windows.go
+++ b/src/util/util_windows.go
@@ -7,7 +7,7 @@ import (
 	"os/exec"
 	"syscall"
 
-	"github.com/junegunn/go-shellwords"
+	"github.com/mattn/go-shellwords"
 )
 
 // ExecCommand executes the given command with $SHELL
-- 
GitLab