Merge pull request #1530 from ijc25/create-directories-from-yaml

Support creating of directories in files section
This commit is contained in:
Justin Cormack 2017-04-07 10:28:23 +01:00 committed by GitHub
commit 7a5cdfd90c

View File

@ -29,6 +29,7 @@ type Moby struct {
Daemon []MobyImage
Files []struct {
Path string
Directory bool
Contents string
}
Outputs []struct {
@ -381,7 +382,7 @@ func filesystem(m *Moby) (*bytes.Buffer, error) {
if f.Path == "" {
return buf, errors.New("Did not specify path for file")
}
if f.Contents == "" {
if !f.Directory && f.Contents == "" {
return buf, errors.New("Contents of file not specified")
}
// we need all the leading directories
@ -406,6 +407,21 @@ func filesystem(m *Moby) (*bytes.Buffer, error) {
return buf, err
}
}
if f.Directory {
if f.Contents != "" {
return buf, errors.New("Directory with contents not allowed")
}
hdr := &tar.Header{
Name: f.Path,
Typeflag: tar.TypeDir,
Mode: 0700,
}
err := tw.WriteHeader(hdr)
if err != nil {
return buf, err
}
} else {
hdr := &tar.Header{
Name: f.Path,
Mode: 0600,
@ -420,5 +436,6 @@ func filesystem(m *Moby) (*bytes.Buffer, error) {
return buf, err
}
}
}
return buf, nil
}