// MsgSyncReq: copy files to the remote host
-// Copyright (C) 2021 Simon Ruderich
+// Copyright (C) 2021-2022 Simon Ruderich
//
// This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// You should have received a copy of the GNU General Public License
// along with this program. If not, see <http://www.gnu.org/licenses/>.
+//go:build !windows
// +build !windows
package sync
}
// Compare file content (if possible)
- switch change.Old.Mode.Type() {
+ switch change.Old.Mode.Type() { //nolint:exhaustive
case 0: // regular file
x, err := io.ReadAll(oldFh)
if err != nil {
err := unix.Unlinkat(parentFd, baseName, 0)
if err != nil && !os.IsNotExist(err) {
err2 := unix.Unlinkat(parentFd, baseName,
- AT_REMOVEDIR)
+ unix.AT_REMOVEDIR)
if err2 != nil && !os.IsNotExist(err2) {
// See src/os/file_unix.go in Go's sources
if err2 == unix.ENOTDIR {
err = unix.Fchownat(parentFd, tmpBase, file.Uid, file.Gid,
unix.AT_SYMLINK_NOFOLLOW)
if err != nil {
- unix.Unlinkat(parentFd, tmpBase, 0)
+ unix.Unlinkat(parentFd, tmpBase, 0) //nolint:errcheck
return err
}
// Permissions are irrelevant for symlinks (on most systems)
debugf("renaming %q", slashpath.Join(dir, tmpBase))
err = unix.Renameat(parentFd, tmpBase, parentFd, baseName)
if err != nil {
- unix.Unlinkat(parentFd, tmpBase, 0)
+ unix.Unlinkat(parentFd, tmpBase, 0) //nolint:errcheck
return err
}
// To guarantee durability fsync must be called on a parent directory
_, err = fh.Write(data)
if err != nil {
fh.Close()
- unix.Unlinkat(dirFd, tmpBase, 0)
+ unix.Unlinkat(dirFd, tmpBase, 0) //nolint:errcheck
return "", err
}
// createTempAt() creates the file with 0600
err = fh.Chown(uid, gid)
if err != nil {
fh.Close()
- unix.Unlinkat(dirFd, tmpBase, 0)
+ unix.Unlinkat(dirFd, tmpBase, 0) //nolint:errcheck
return "", err
}
err = fh.Chmod(mode)
if err != nil {
fh.Close()
- unix.Unlinkat(dirFd, tmpBase, 0)
+ unix.Unlinkat(dirFd, tmpBase, 0) //nolint:errcheck
return "", err
}
err = fh.Sync()
if err != nil {
fh.Close()
- unix.Unlinkat(dirFd, tmpBase, 0)
+ unix.Unlinkat(dirFd, tmpBase, 0) //nolint:errcheck
return "", err
}
err = fh.Close()
if err != nil {
- unix.Unlinkat(dirFd, tmpBase, 0)
+ unix.Unlinkat(dirFd, tmpBase, 0) //nolint:errcheck
return "", err
}