]> git.immae.eu Git - github/fretlink/terraform-provider-statuscake.git/blob - vendor/github.com/posener/complete/utils.go
Merge pull request #27 from terraform-providers/go-modules-2019-02-22
[github/fretlink/terraform-provider-statuscake.git] / vendor / github.com / posener / complete / utils.go
1 package complete
2
3 import (
4 "os"
5 "path/filepath"
6 "strings"
7 )
8
9 // fixPathForm changes a file name to a relative name
10 func fixPathForm(last string, file string) string {
11 // get wording directory for relative name
12 workDir, err := os.Getwd()
13 if err != nil {
14 return file
15 }
16
17 abs, err := filepath.Abs(file)
18 if err != nil {
19 return file
20 }
21
22 // if last is absolute, return path as absolute
23 if filepath.IsAbs(last) {
24 return fixDirPath(abs)
25 }
26
27 rel, err := filepath.Rel(workDir, abs)
28 if err != nil {
29 return file
30 }
31
32 // fix ./ prefix of path
33 if rel != "." && strings.HasPrefix(last, ".") {
34 rel = "./" + rel
35 }
36
37 return fixDirPath(rel)
38 }
39
40 func fixDirPath(path string) string {
41 info, err := os.Stat(path)
42 if err == nil && info.IsDir() && !strings.HasSuffix(path, "/") {
43 path += "/"
44 }
45 return path
46 }