コード例 #1
0
ファイル: env.go プロジェクト: pombredanne/dep
func (o *Environment) Track(pkg *gdf.Package, recursive bool) (data []byte, err error) {
	revisions := map[string]revision{}
	for im, _ := range pkg.ImportedPackages {
		//o.trackedImportRevisions(pkg.Path)
		iPkg, e := o.GetPkg(im)

		if e != nil {
			err = e
			return
		}
		if iPkg.Internal {
			continue
		}
		if !iPkg.IsInPath(pkg.Path) && !pkg.IsInPath(iPkg.Path) {
			revisions[im] = o.getRevision(iPkg.Dir(), pkg.Path)
		}
		if recursive {
			o.recursiveImportRevisions(revisions, iPkg, pkg.Path)
			continue
		}
	}

	data, err = json.MarshalIndent(revisions, "", "  ")
	if err != nil {
		return
	}

	filename := path.Join(pkg.Dir(), revFileName)
	err = ioutil.WriteFile(filename, data, 0644)
	return
}