add Source attribute to File

Signed-off-by: Chanwit Kaewkasi <chanwit@gmail.com>
This commit is contained in:
Chanwit Kaewkasi 2017-05-12 00:56:33 +07:00
parent ba07bbfb0d
commit d83c35259a
2 changed files with 21 additions and 9 deletions

View File

@ -6,6 +6,7 @@ import (
"encoding/json"
"errors"
"fmt"
"io/ioutil"
"os"
"path"
"path/filepath"
@ -34,6 +35,7 @@ type Moby struct {
Directory bool
Symlink string
Contents string
Source string
}
Outputs []struct {
Format string
@ -440,7 +442,16 @@ func filesystem(m *Moby) (*bytes.Buffer, error) {
return buf, errors.New("Did not specify path for file")
}
if !f.Directory && f.Contents == "" && f.Symlink == "" {
return buf, errors.New("Contents of file not specified")
if f.Source == "" {
return buf, errors.New("Contents of file not specified")
}
contents, err := ioutil.ReadFile(f.Source)
if err != nil {
return buf, err
}
f.Contents = string(contents)
}
// we need all the leading directories
parts := strings.Split(path.Dir(f.Path), "/")

View File

@ -21,7 +21,8 @@ var schema = string(`
"path": {"type": "string"},
"directory": {"type": "boolean"},
"symlink": {"type": "string"},
"contents": {"type": "string"}
"contents": {"type": "string"},
"source": {"type": "string"}
}
},
"files": {