MCPcopy
hub / github.com/kopia/kopia / CreateSymlink

Method CreateSymlink

snapshot/restore/tar_output.go:108–129  ·  view source on GitHub ↗

CreateSymlink implements restore.Output interface.

(ctx context.Context, relativePath string, l fs.Symlink)

Source from the content-addressed store, hash-verified

106
107// CreateSymlink implements restore.Output interface.
108func (o *TarOutput) CreateSymlink(ctx context.Context, relativePath string, l fs.Symlink) error {
109 target, err := l.Readlink(ctx)
110 if err != nil {
111 return errors.Wrap(err, "error reading link target")
112 }
113
114 h := &tar.Header{
115 Name: relativePath,
116 ModTime: l.ModTime(),
117 Mode: int64(l.Mode()),
118 Uid: int(l.Owner().UserID),
119 Gid: int(l.Owner().GroupID),
120 Typeflag: tar.TypeSymlink,
121 Linkname: target,
122 }
123
124 if err := o.tf.WriteHeader(h); err != nil {
125 return errors.Wrap(err, "error writing tar header")
126 }
127
128 return nil
129}
130
131// SymlinkExists implements restore.Output interface.
132//

Callers

nothing calls this directly

Calls 4

ReadlinkMethod · 0.65
OwnerMethod · 0.65
ModTimeMethod · 0.45
ModeMethod · 0.45

Tested by

no test coverage detected