| // Copyright (c) HashiCorp, Inc. |
| // SPDX-License-Identifier: BUSL-1.1 |
| |
| package gcs |
| |
| import ( |
| "io/ioutil" |
| "os" |
| |
| "github.com/mitchellh/go-homedir" |
| ) |
| |
| // If the argument is a path, Read loads it and returns the contents, |
| // otherwise the argument is assumed to be the desired contents and is simply |
| // returned. |
| func readPathOrContents(poc string) (string, error) { |
| if len(poc) == 0 { |
| return poc, nil |
| } |
| |
| path := poc |
| if path[0] == '~' { |
| var err error |
| path, err = homedir.Expand(path) |
| if err != nil { |
| return path, err |
| } |
| } |
| |
| if _, err := os.Stat(path); err == nil { |
| contents, err := ioutil.ReadFile(path) |
| if err != nil { |
| return string(contents), err |
| } |
| return string(contents), nil |
| } |
| |
| return poc, nil |
| } |