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  }