//go:build linux

package yqlib

import (
	"io/fs"
	"os"
	"syscall"
)

func changeOwner(info fs.FileInfo, file *os.File) error {
	if stat, ok := info.Sys().(*syscall.Stat_t); ok {
		uid := int(stat.Uid)
		gid := int(stat.Gid)

		err := os.Chown(file.Name(), uid, gid)
		if err != nil {
			// this happens with snap confinement
			// not really a big issue as users can chown
			// the file themselves if required.
			log.Infof("Skipping chown: %v", err)
		}
	}
	return nil
}
