Skip to content

Commit c1dbce1

Browse files
fix: ACI-2805 Always overwrite symlinks
1 parent f248fb4 commit c1dbce1

File tree

4 files changed

+9
-13
lines changed

4 files changed

+9
-13
lines changed

cmd/restoreXcodeDerivedDataFiles.go

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -156,14 +156,14 @@ func restoreXcodeDerivedDataFilesCmdFn(ctx context.Context, authConfig common.Ca
156156

157157
if len(metadata.ProjectFiles.Symlinks) > 0 {
158158
logger.TInfof("Restoring project symlinks")
159-
if _, err = xcode.RestoreSymlinks(metadata.ProjectFiles.Symlinks, forceOverwrite, logger); err != nil {
159+
if _, err = xcode.RestoreSymlinks(metadata.ProjectFiles.Symlinks, logger); err != nil {
160160
return op, fmt.Errorf("restore project symlink: %w", err)
161161
}
162162
}
163163

164164
if len(metadata.DerivedData.Symlinks) > 0 {
165165
logger.TInfof("Restoring DerivedData symlinks")
166-
if _, err = xcode.RestoreSymlinks(metadata.DerivedData.Symlinks, forceOverwrite, logger); err != nil {
166+
if _, err = xcode.RestoreSymlinks(metadata.DerivedData.Symlinks, logger); err != nil {
167167
return op, fmt.Errorf("restore DerivedData symlink: %w", err)
168168
}
169169
}
@@ -182,7 +182,7 @@ func restoreXcodeDerivedDataFilesCmdFn(ctx context.Context, authConfig common.Ca
182182

183183
if len(metadata.XcodeCacheDir.Symlinks) > 0 {
184184
logger.TInfof("Restoring Xcode cache symlinks")
185-
if _, err = xcode.RestoreSymlinks(metadata.XcodeCacheDir.Symlinks, forceOverwrite, logger); err != nil {
185+
if _, err = xcode.RestoreSymlinks(metadata.XcodeCacheDir.Symlinks, logger); err != nil {
186186
return op, fmt.Errorf("restore xcode symlink: %w", err)
187187
}
188188
}
@@ -255,7 +255,7 @@ func logCacheMetadata(md *xcode.Metadata, logger log.Logger, isDebugLogMode bool
255255
logger.Infof(" Git commit: %s", md.GitCommit)
256256
logger.Infof(" Git branch: %s", md.GitBranch)
257257
logger.Infof(" Project files: %d", len(md.ProjectFiles.Files))
258-
logger.Infof(" Project sylinks: %d", len(md.ProjectFiles.Symlinks))
258+
logger.Infof(" Project symlinks: %d", len(md.ProjectFiles.Symlinks))
259259
logger.Infof(" DerivedData files: %d", len(md.DerivedData.Files))
260260
logger.Infof(" DerivedData symlinks: %d", len(md.DerivedData.Symlinks))
261261
logger.Infof(" Xcode cache files: %d", len(md.XcodeCacheDir.Files))

cmd/saveXcodeDerivedDataFiles.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -98,7 +98,7 @@ func init() {
9898
panic(err)
9999
}
100100
saveXcodeDerivedDataFilesCmd.Flags().String("xcodecache-path", "", "Path to the Xcode cache directory folder to be saved. If not set, it will not be uploaded.")
101-
saveXcodeDerivedDataFilesCmd.Flags().Bool("follow-symlinks", false, "Follow symlinks when calculating metadata (default: false)")
101+
saveXcodeDerivedDataFilesCmd.Flags().Bool("follow-symlinks", false, "Follow symlinks when calculating metadata and save referenced files to the cache (default: false)")
102102
}
103103

104104
func saveXcodeDerivedDataFilesCmdFn(ctx context.Context,

internal/xcode/file_group_info.go

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -286,14 +286,10 @@ func setAttributes(path string, attributes map[string]string) error {
286286
return nil
287287
}
288288

289-
func restoreSymlink(symlink SymlinkInfo, forceOverwrite bool, logger log.Logger) bool {
289+
func restoreSymlink(symlink SymlinkInfo, logger log.Logger) bool {
290290
fileInfo, err := os.Lstat(symlink.Path)
291291
if err == nil && fileInfo.Mode()&os.ModeSymlink != 0 {
292-
if !forceOverwrite {
293-
logger.Debugf("Symlink %s already exists", symlink.Path)
294-
295-
return false
296-
}
292+
logger.Debugf("Symlink %s already exists, overwriting...", symlink.Path)
297293

298294
err := os.Remove(symlink.Path)
299295
if err != nil {

internal/xcode/metadata.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -143,13 +143,13 @@ func RestoreDirectoryInfos(dirInfos []*DirectoryInfo, rootDir string, logger log
143143
return nil
144144
}
145145

146-
func RestoreSymlinks(symlinks []*SymlinkInfo, forceOverwrite bool, logger log.Logger) (int, error) {
146+
func RestoreSymlinks(symlinks []*SymlinkInfo, logger log.Logger) (int, error) {
147147
updated := 0
148148

149149
logger.Infof("(i) %d symlinks' info loaded from cache metadata", len(symlinks))
150150

151151
for _, si := range symlinks {
152-
if restoreSymlink(*si, forceOverwrite, logger) {
152+
if restoreSymlink(*si, logger) {
153153
updated++
154154
}
155155
}

0 commit comments

Comments
 (0)