Initial commit
This commit is contained in:
34
vendor/github.com/hyperhq/hypercli/builder/dockerignore/dockerignore.go
generated
vendored
Normal file
34
vendor/github.com/hyperhq/hypercli/builder/dockerignore/dockerignore.go
generated
vendored
Normal file
@@ -0,0 +1,34 @@
|
||||
package dockerignore
|
||||
|
||||
import (
|
||||
"bufio"
|
||||
"fmt"
|
||||
"io"
|
||||
"path/filepath"
|
||||
"strings"
|
||||
)
|
||||
|
||||
// ReadAll reads a .dockerignore file and returns the list of file patterns
|
||||
// to ignore. Note this will trim whitespace from each line as well
|
||||
// as use GO's "clean" func to get the shortest/cleanest path for each.
|
||||
func ReadAll(reader io.ReadCloser) ([]string, error) {
|
||||
if reader == nil {
|
||||
return nil, nil
|
||||
}
|
||||
defer reader.Close()
|
||||
scanner := bufio.NewScanner(reader)
|
||||
var excludes []string
|
||||
|
||||
for scanner.Scan() {
|
||||
pattern := strings.TrimSpace(scanner.Text())
|
||||
if pattern == "" {
|
||||
continue
|
||||
}
|
||||
pattern = filepath.Clean(pattern)
|
||||
excludes = append(excludes, pattern)
|
||||
}
|
||||
if err := scanner.Err(); err != nil {
|
||||
return nil, fmt.Errorf("Error reading .dockerignore: %v", err)
|
||||
}
|
||||
return excludes, nil
|
||||
}
|
||||
55
vendor/github.com/hyperhq/hypercli/builder/dockerignore/dockerignore_test.go
generated
vendored
Normal file
55
vendor/github.com/hyperhq/hypercli/builder/dockerignore/dockerignore_test.go
generated
vendored
Normal file
@@ -0,0 +1,55 @@
|
||||
package dockerignore
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"io/ioutil"
|
||||
"os"
|
||||
"path/filepath"
|
||||
"testing"
|
||||
)
|
||||
|
||||
func TestReadAll(t *testing.T) {
|
||||
tmpDir, err := ioutil.TempDir("", "dockerignore-test")
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
defer os.RemoveAll(tmpDir)
|
||||
|
||||
di, err := ReadAll(nil)
|
||||
if err != nil {
|
||||
t.Fatalf("Expected not to have error, got %v", err)
|
||||
}
|
||||
|
||||
if diLen := len(di); diLen != 0 {
|
||||
t.Fatalf("Expected to have zero dockerignore entry, got %d", diLen)
|
||||
}
|
||||
|
||||
diName := filepath.Join(tmpDir, ".dockerignore")
|
||||
content := fmt.Sprintf("test1\n/test2\n/a/file/here\n\nlastfile")
|
||||
err = ioutil.WriteFile(diName, []byte(content), 0777)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
|
||||
diFd, err := os.Open(diName)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
di, err = ReadAll(diFd)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
|
||||
if di[0] != "test1" {
|
||||
t.Fatalf("First element is not test1")
|
||||
}
|
||||
if di[1] != "/test2" {
|
||||
t.Fatalf("Second element is not /test2")
|
||||
}
|
||||
if di[2] != "/a/file/here" {
|
||||
t.Fatalf("Third element is not /a/file/here")
|
||||
}
|
||||
if di[3] != "lastfile" {
|
||||
t.Fatalf("Fourth element is not lastfile")
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user