github.com/golang/dep@v0.5.4/internal/importers/importers.go (about)

     1  // Copyright 2017 The Go Authors. All rights reserved.
     2  // Use of this source code is governed by a BSD-style
     3  // license that can be found in the LICENSE file.
     4  
     5  package importers
     6  
     7  import (
     8  	"log"
     9  
    10  	"github.com/golang/dep"
    11  	"github.com/golang/dep/gps"
    12  	"github.com/golang/dep/internal/importers/glide"
    13  	"github.com/golang/dep/internal/importers/glock"
    14  	"github.com/golang/dep/internal/importers/godep"
    15  	"github.com/golang/dep/internal/importers/govend"
    16  	"github.com/golang/dep/internal/importers/govendor"
    17  	"github.com/golang/dep/internal/importers/gvt"
    18  	"github.com/golang/dep/internal/importers/vndr"
    19  )
    20  
    21  // Importer handles importing configuration from other dependency managers into
    22  // the dep configuration format.
    23  type Importer interface {
    24  	// Name of the importer.
    25  	Name() string
    26  
    27  	// Import the config found in the directory.
    28  	Import(path string, pr gps.ProjectRoot) (*dep.Manifest, *dep.Lock, error)
    29  
    30  	// HasDepMetadata checks if a directory contains config that the importer can handle.
    31  	HasDepMetadata(dir string) bool
    32  }
    33  
    34  // BuildAll returns a slice of all the importers.
    35  func BuildAll(logger *log.Logger, verbose bool, sm gps.SourceManager) []Importer {
    36  	return []Importer{
    37  		glide.NewImporter(logger, verbose, sm),
    38  		godep.NewImporter(logger, verbose, sm),
    39  		vndr.NewImporter(logger, verbose, sm),
    40  		govend.NewImporter(logger, verbose, sm),
    41  		gvt.NewImporter(logger, verbose, sm),
    42  		govendor.NewImporter(logger, verbose, sm),
    43  		glock.NewImporter(logger, verbose, sm),
    44  	}
    45  }