Moved the godep strip functionality to a custom package
diff --git a/godep/strip/strip.go b/godep/strip/strip.go
new file mode 100644
index 0000000..e70d607
--- /dev/null
+++ b/godep/strip/strip.go
@@ -0,0 +1,156 @@
+// Package strip removes Godeps/_workspace and undoes the Godep rewrites. This
+// essentially removes the old style (pre-vendor) Godep vendoring.
+//
+// Note, this functionality is deprecated. Once more projects use the Godep
+// support for the core vendoring this will no longer be needed.
+package strip
+
+import (
+	"bytes"
+	"go/ast"
+	"go/parser"
+	"go/printer"
+	"go/token"
+	"os"
+	"path/filepath"
+	"strconv"
+	"strings"
+
+	"github.com/Masterminds/glide/msg"
+)
+
+var godepMark = map[string]bool{}
+
+var vPath = "vendor"
+
+// GodepWorkspace removes any Godeps/_workspace directories and makes sure
+// any rewrites are undone.
+// Note, this is not concuccency safe.
+func GodepWorkspace(v string) error {
+	vPath = v
+	if _, err := os.Stat(vPath); err != nil {
+		if os.IsNotExist(err) {
+			msg.Debug("Vendor directory does not exist.")
+		}
+
+		return err
+	}
+
+	err := filepath.Walk(vPath, stripGodepWorkspaceHandler)
+	if err != nil {
+		return err
+	}
+
+	// Walk the marked projects to make sure rewrites are undone.
+	for k := range godepMark {
+		msg.Info("Removing Godep rewrites for %s", k)
+		err := filepath.Walk(k, rewriteGodepfilesHandler)
+		if err != nil {
+			return err
+		}
+	}
+
+	return nil
+}
+
+func stripGodepWorkspaceHandler(path string, info os.FileInfo, err error) error {
+	// Skip the base vendor directory
+	if path == vPath {
+		return nil
+	}
+
+	name := info.Name()
+	p := filepath.Dir(path)
+	pn := filepath.Base(p)
+	if name == "_workspace" && pn == "Godeps" {
+		if _, err := os.Stat(path); err == nil {
+			if info.IsDir() {
+				// Marking this location to make sure rewrites are undone.
+				pp := filepath.Dir(p)
+				godepMark[pp] = true
+
+				msg.Info("Removing: %s", path)
+				return os.RemoveAll(path)
+			}
+
+			msg.Debug("%s is not a directory. Skipping removal", path)
+			return nil
+		}
+	}
+	return nil
+}
+
+func rewriteGodepfilesHandler(path string, info os.FileInfo, err error) error {
+	name := info.Name()
+	if name == "testdata" || name == "vendor" {
+		return filepath.SkipDir
+	}
+
+	if info.IsDir() {
+		return nil
+	}
+
+	if e := filepath.Ext(path); e != ".go" {
+		return nil
+	}
+
+	fset := token.NewFileSet()
+	f, err := parser.ParseFile(fset, path, nil, parser.ParseComments)
+	if err != nil {
+		return err
+	}
+
+	var changed bool
+	for _, s := range f.Imports {
+		n, err := strconv.Unquote(s.Path.Value)
+		if err != nil {
+			return err
+		}
+		q := rewriteGodepImport(n)
+		if q != name {
+			s.Path.Value = strconv.Quote(q)
+			changed = true
+		}
+	}
+	if !changed {
+		return nil
+	}
+
+	printerConfig := &printer.Config{Mode: printer.TabIndent | printer.UseSpaces, Tabwidth: 8}
+	var buffer bytes.Buffer
+	if err = printerConfig.Fprint(&buffer, fset, f); err != nil {
+		return err
+	}
+	fset = token.NewFileSet()
+	f, err = parser.ParseFile(fset, name, &buffer, parser.ParseComments)
+	ast.SortImports(fset, f)
+	tpath := path + ".temp"
+	t, err := os.Create(tpath)
+	if err != nil {
+		return err
+	}
+	if err = printerConfig.Fprint(t, fset, f); err != nil {
+		return err
+	}
+	if err = t.Close(); err != nil {
+		return err
+	}
+
+	msg.Debug("Rewriting Godep imports for %s", path)
+
+	// This is required before the rename on windows.
+	if err = os.Remove(path); err != nil {
+		return err
+	}
+	return os.Rename(tpath, path)
+}
+
+func rewriteGodepImport(n string) string {
+	if !strings.Contains(n, "Godeps/_workspace/src") {
+		return n
+	}
+
+	i := strings.LastIndex(n, "Godeps/_workspace/src")
+
+	return strings.TrimPrefix(n[i:], "Godeps/_workspace/src/")
+}
diff --git a/godep/strip/strip_test.go b/godep/strip/strip_test.go
new file mode 100644
index 0000000..e260a30
--- /dev/null
+++ b/godep/strip/strip_test.go
@@ -0,0 +1,17 @@
+package strip
+
+import "testing"
+
+func TestRewriteGodepImport(t *testing.T) {
+	tests := map[string]string{
+		"github.com/Masterminds/glide/action":                           "github.com/Masterminds/glide/action",
+		"github.com/tools/godep/Godeps/_workspace/src/github.com/kr/fs": "github.com/kr/fs",
+	}
+
+	for k, v := range tests {
+		o := rewriteGodepImport(k)
+		if o != v {
+			t.Errorf("Incorrect Godep import path rewritten %s: %s", v, o)
+		}
+	}
+}
diff --git a/path/strip.go b/path/strip.go
index 6f8698d..1162f38 100644
--- a/path/strip.go
+++ b/path/strip.go
@@ -1,16 +1,10 @@
 package path
 
 import (
-	"bytes"
-	"go/ast"
-	"go/parser"
-	"go/printer"
-	"go/token"
 	"os"
 	"path/filepath"
-	"strconv"
-	"strings"
 
+	"github.com/Masterminds/glide/godep/strip"
 	"github.com/Masterminds/glide/msg"
 )
 
@@ -59,7 +53,9 @@
 		return err
 	}
 
-	return StripGodepWorkspace()
+	err = strip.GodepWorkspace(VendorDir)
+
+	return err
 }
 
 func stripVendorHandler(path string, info os.FileInfo, err error) error {
@@ -82,136 +78,3 @@
 	}
 	return nil
 }
-
-var godepMark = map[string]bool{}
-
-// StripGodepWorkspace removes any Godeps/_workspace directories and makes sure
-// any rewrites are undone.
-// Note, this is not concuccency safe.
-func StripGodepWorkspace() error {
-	if _, err := os.Stat(VendorDir); err != nil {
-		if os.IsNotExist(err) {
-			msg.Debug("Vendor directory does not exist.")
-		}
-
-		return err
-	}
-
-	err := filepath.Walk(VendorDir, stripGodepWorkspaceHandler)
-	if err != nil {
-		return err
-	}
-
-	// Walk the marked projects to make sure rewrites are undone.
-	for k := range godepMark {
-		msg.Info("Removing Godep rewrites for %s", k)
-		err := filepath.Walk(k, rewriteGodepfilesHandler)
-		if err != nil {
-			return err
-		}
-	}
-
-	return nil
-}
-
-func stripGodepWorkspaceHandler(path string, info os.FileInfo, err error) error {
-	// Skip the base vendor directory
-	if path == VendorDir {
-		return nil
-	}
-
-	name := info.Name()
-	p := filepath.Dir(path)
-	pn := filepath.Base(p)
-	if name == "_workspace" && pn == "Godeps" {
-		if _, err := os.Stat(path); err == nil {
-			if info.IsDir() {
-				// Marking this location to make sure rewrites are undone.
-				pp := filepath.Dir(p)
-				godepMark[pp] = true
-
-				msg.Info("Removing: %s", path)
-				return os.RemoveAll(path)
-			}
-
-			msg.Debug("%s is not a directory. Skipping removal", path)
-			return nil
-		}
-	}
-	return nil
-}
-
-func rewriteGodepfilesHandler(path string, info os.FileInfo, err error) error {
-	name := info.Name()
-	if name == "testdata" || name == "vendor" {
-		return filepath.SkipDir
-	}
-
-	if info.IsDir() {
-		return nil
-	}
-
-	if e := filepath.Ext(path); e != ".go" {
-		return nil
-	}
-
-	fset := token.NewFileSet()
-	f, err := parser.ParseFile(fset, path, nil, parser.ParseComments)
-	if err != nil {
-		return err
-	}
-
-	var changed bool
-	for _, s := range f.Imports {
-		n, err := strconv.Unquote(s.Path.Value)
-		if err != nil {
-			return err
-		}
-		q := rewriteGodepImport(n)
-		if q != name {
-			s.Path.Value = strconv.Quote(q)
-			changed = true
-		}
-	}
-	if !changed {
-		return nil
-	}
-
-	printerConfig := &printer.Config{Mode: printer.TabIndent | printer.UseSpaces, Tabwidth: 8}
-	var buffer bytes.Buffer
-	if err = printerConfig.Fprint(&buffer, fset, f); err != nil {
-		return err
-	}
-	fset = token.NewFileSet()
-	f, err = parser.ParseFile(fset, name, &buffer, parser.ParseComments)
-	ast.SortImports(fset, f)
-	tpath := path + ".temp"
-	t, err := os.Create(tpath)
-	if err != nil {
-		return err
-	}
-	if err = printerConfig.Fprint(t, fset, f); err != nil {
-		return err
-	}
-	if err = t.Close(); err != nil {
-		return err
-	}
-
-	msg.Debug("Rewriting Godep imports for %s", path)
-
-	// This is required before the rename on windows.
-	if err = os.Remove(path); err != nil {
-		return err
-	}
-	return os.Rename(tpath, path)
-}
-
-func rewriteGodepImport(n string) string {
-	if !strings.Contains(n, "Godeps/_workspace/src") {
-		return n
-	}
-
-	i := strings.LastIndex(n, "Godeps/_workspace/src")
-
-	return strings.TrimPrefix(n[i:], "Godeps/_workspace/src/")
-}
diff --git a/path/strip_test.go b/path/strip_test.go
index eb0789c..6c11194 100644
--- a/path/strip_test.go
+++ b/path/strip_test.go
@@ -65,17 +65,3 @@
 		t.Error(".svn directory not deleted")
 	}
 }
-
-func TestRewriteGodepImport(t *testing.T) {
-	tests := map[string]string{
-		"github.com/Masterminds/glide/action":                           "github.com/Masterminds/glide/action",
-		"github.com/tools/godep/Godeps/_workspace/src/github.com/kr/fs": "github.com/kr/fs",
-	}
-
-	for k, v := range tests {
-		o := rewriteGodepImport(k)
-		if o != v {
-			t.Errorf("Incorrect Godep import path rewritten %s: %s", v, o)
-		}
-	}
-}