github.com/divan/complete@v0.0.0-20170515130636-337e95201af7/utils.go (about) 1 package complete 2 3 import ( 4 "os" 5 "path/filepath" 6 ) 7 8 // relativePath changes a file name to a relative name 9 func relativePath(file string) string { 10 // get wording directory for relative name 11 workDir, err := os.Getwd() 12 if err != nil { 13 return file 14 } 15 16 abs, err := filepath.Abs(file) 17 if err != nil { 18 return file 19 } 20 rel, err := filepath.Rel(workDir, abs) 21 if err != nil { 22 return file 23 } 24 if rel != "." { 25 rel = "./" + rel 26 } 27 if info, err := os.Stat(rel); err == nil && info.IsDir() { 28 rel += "/" 29 } 30 return rel 31 }