diff --git a/appended.go b/appended.go index db8279c..38d78f9 100644 --- a/appended.go +++ b/appended.go @@ -15,6 +15,7 @@ import ( type appendedBox struct { Name string // box name Files map[string]*appendedFile // appended files (*zip.File) by full path + Time time.Time } type appendedFile struct { @@ -59,6 +60,7 @@ func init() { box = &appendedBox{ Name: boxName, Files: make(map[string]*appendedFile), + Time: f.ModTime(), } appendedBoxes[boxName] = box } @@ -71,8 +73,7 @@ func init() { af.dir = true af.dirInfo = &appendedDirInfo{ name: filepath.Base(af.zipFile.Name), - //++ TODO: use zip modtime when that is set correctly: af.zipFile.ModTime() - time: time.Now(), + time: af.zipFile.ModTime(), } } else { // this is a file, we need it's contents so we can create a bytes.Reader when the file is opened diff --git a/box.go b/box.go index 71482e2..208b168 100644 --- a/box.go +++ b/box.go @@ -170,7 +170,9 @@ func (b *Box) Time() time.Time { return b.embed.Time } - //++ TODO: return time for appended box + if b.IsAppended() { + return b.appendd.Time + } return time.Now() } diff --git a/rice/append.go b/rice/append.go index 8ab0130..80ab109 100644 --- a/rice/append.go +++ b/rice/append.go @@ -87,10 +87,12 @@ func operationAppend(pkgs []*build.Package) { zipFileName := filepath.Join(appendedBoxName, strings.TrimPrefix(path, boxPath)) // write directories as empty file with comment "dir" if info.IsDir() { - _, err := zipWriter.CreateHeader(&zip.FileHeader{ - Name: zipFileName, - Comment: "dir", - }) + header := &zip.FileHeader{ + Name: zipFileName, + Comment: "dir", + } + header.SetModTime(info.ModTime()) + _, err := zipWriter.CreateHeader(header) if err != nil { fmt.Printf("Error creating dir in tmp zip: %s\n", err) os.Exit(1)