MCPcopy
hub / github.com/docker/compose / createTar

Function createTar

pkg/compose/secrets.go:139–182  ·  view source on GitHub ↗
(env string, config types.FileReferenceConfig)

Source from the content-addressed store, hash-verified

137}
138
139func createTar(env string, config types.FileReferenceConfig) (bytes.Buffer, error) {
140 value := []byte(env)
141 b := bytes.Buffer{}
142 tarWriter := tar.NewWriter(&b)
143 mode := types.FileMode(0o444)
144 if config.Mode != nil {
145 mode = *config.Mode
146 }
147
148 var uid, gid int
149 if config.UID != "" {
150 v, err := strconv.Atoi(config.UID)
151 if err != nil {
152 return b, err
153 }
154 uid = v
155 }
156 if config.GID != "" {
157 v, err := strconv.Atoi(config.GID)
158 if err != nil {
159 return b, err
160 }
161 gid = v
162 }
163
164 header := &tar.Header{
165 Name: config.Target,
166 Size: int64(len(value)),
167 Mode: int64(mode),
168 ModTime: time.Now(),
169 Uid: uid,
170 Gid: gid,
171 }
172 err := tarWriter.WriteHeader(header)
173 if err != nil {
174 return bytes.Buffer{}, err
175 }
176 _, err = tarWriter.Write(value)
177 if err != nil {
178 return bytes.Buffer{}, err
179 }
180 err = tarWriter.Close()
181 return b, err
182}

Callers 1

copyFileToContainerMethod · 0.85

Calls 2

CloseMethod · 0.65
WriteMethod · 0.45

Tested by

no test coverage detected