github.com/bilus/oya@v0.0.3-0.20190301162104-da4acbd394c6/cmd/internal/import.go (about) 1 package internal 2 3 import ( 4 "io" 5 "strings" 6 7 "github.com/bilus/oya/pkg/project" 8 "github.com/bilus/oya/pkg/raw" 9 "github.com/pkg/errors" 10 ) 11 12 func Import(workDir, uri string, stdout, stderr io.Writer) error { 13 uriArr := strings.Split(uri, "/") 14 alias := uriArr[len(uriArr)-1] 15 16 installDir, err := installDir() 17 if err != nil { 18 return wrapErr(err, uri) 19 } 20 proj, err := project.Detect(workDir, installDir) 21 if err != nil { 22 return err 23 } 24 25 raw, found, err := raw.LoadFromDir(workDir, proj.RootDir) 26 if err != nil { 27 return err 28 } 29 if !found { 30 return errors.Errorf("No Oyafile found in %v", workDir) 31 } 32 33 if err := raw.AddImport(alias, uri); err != nil { 34 return err 35 } 36 37 return nil 38 }