...
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package zipbased
18
19 import (
20 "io"
21 "os"
22
23 "github.com/sassoftware/relic/lib/zipslicer"
24 "github.com/sassoftware/relic/signers"
25 )
26
27 type zipTransformer struct {
28 f *os.File
29 }
30
31 func Transform(f *os.File, opts signers.SignOpts) (signers.Transformer, error) {
32 return &zipTransformer{f}, nil
33 }
34
35
36
37 func (t *zipTransformer) GetReader() (io.Reader, error) {
38 r, w := io.Pipe()
39 go func() {
40 w.CloseWithError(zipslicer.ZipToTar(t.f, w))
41 }()
42 return r, nil
43 }
44
45 func (t *zipTransformer) Apply(dest, mimeType string, result io.Reader) error {
46 return signers.ApplyBinPatch(t.f, dest, result)
47 }
48
View as plain text