diff options
Diffstat (limited to 'vendor/gopkg.in/ini.v1/data_source.go')
| -rw-r--r-- | vendor/gopkg.in/ini.v1/data_source.go | 76 |
1 files changed, 0 insertions, 76 deletions
diff --git a/vendor/gopkg.in/ini.v1/data_source.go b/vendor/gopkg.in/ini.v1/data_source.go deleted file mode 100644 index c3a541f..0000000 --- a/vendor/gopkg.in/ini.v1/data_source.go +++ /dev/null | |||
| @@ -1,76 +0,0 @@ | |||
| 1 | // Copyright 2019 Unknwon | ||
| 2 | // | ||
| 3 | // Licensed under the Apache License, Version 2.0 (the "License"): you may | ||
| 4 | // not use this file except in compliance with the License. You may obtain | ||
| 5 | // a copy of the License at | ||
| 6 | // | ||
| 7 | // http://www.apache.org/licenses/LICENSE-2.0 | ||
| 8 | // | ||
| 9 | // Unless required by applicable law or agreed to in writing, software | ||
| 10 | // distributed under the License is distributed on an "AS IS" BASIS, WITHOUT | ||
| 11 | // WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the | ||
| 12 | // License for the specific language governing permissions and limitations | ||
| 13 | // under the License. | ||
| 14 | |||
| 15 | package ini | ||
| 16 | |||
| 17 | import ( | ||
| 18 | "bytes" | ||
| 19 | "fmt" | ||
| 20 | "io" | ||
| 21 | "io/ioutil" | ||
| 22 | "os" | ||
| 23 | ) | ||
| 24 | |||
| 25 | var ( | ||
| 26 | _ dataSource = (*sourceFile)(nil) | ||
| 27 | _ dataSource = (*sourceData)(nil) | ||
| 28 | _ dataSource = (*sourceReadCloser)(nil) | ||
| 29 | ) | ||
| 30 | |||
| 31 | // dataSource is an interface that returns object which can be read and closed. | ||
| 32 | type dataSource interface { | ||
| 33 | ReadCloser() (io.ReadCloser, error) | ||
| 34 | } | ||
| 35 | |||
| 36 | // sourceFile represents an object that contains content on the local file system. | ||
| 37 | type sourceFile struct { | ||
| 38 | name string | ||
| 39 | } | ||
| 40 | |||
| 41 | func (s sourceFile) ReadCloser() (_ io.ReadCloser, err error) { | ||
| 42 | return os.Open(s.name) | ||
| 43 | } | ||
| 44 | |||
| 45 | // sourceData represents an object that contains content in memory. | ||
| 46 | type sourceData struct { | ||
| 47 | data []byte | ||
| 48 | } | ||
| 49 | |||
| 50 | func (s *sourceData) ReadCloser() (io.ReadCloser, error) { | ||
| 51 | return ioutil.NopCloser(bytes.NewReader(s.data)), nil | ||
| 52 | } | ||
| 53 | |||
| 54 | // sourceReadCloser represents an input stream with Close method. | ||
| 55 | type sourceReadCloser struct { | ||
| 56 | reader io.ReadCloser | ||
| 57 | } | ||
| 58 | |||
| 59 | func (s *sourceReadCloser) ReadCloser() (io.ReadCloser, error) { | ||
| 60 | return s.reader, nil | ||
| 61 | } | ||
| 62 | |||
| 63 | func parseDataSource(source interface{}) (dataSource, error) { | ||
| 64 | switch s := source.(type) { | ||
| 65 | case string: | ||
| 66 | return sourceFile{s}, nil | ||
| 67 | case []byte: | ||
| 68 | return &sourceData{s}, nil | ||
| 69 | case io.ReadCloser: | ||
| 70 | return &sourceReadCloser{s}, nil | ||
| 71 | case io.Reader: | ||
| 72 | return &sourceReadCloser{ioutil.NopCloser(s)}, nil | ||
| 73 | default: | ||
| 74 | return nil, fmt.Errorf("error parsing data source: unknown type %q", s) | ||
| 75 | } | ||
| 76 | } | ||