sync: Refactor importFile to use a parametrable writer

This commit is contained in:
nemunaire 2025-04-07 10:15:26 +02:00
parent c5d0616896
commit c7d1d7ce4c

View file

@ -188,26 +188,35 @@ func GetDestinationFilePath(URI string, filename *string) string {
return path.Join(fic.FilesDir, strings.ToLower(base32.StdEncoding.WithPadding(base32.NoPadding).EncodeToString(hash[:])), *filename)
}
func importFile(i Importer, URI string, dest string) error {
var fileWriter = fileWriterToFS
func SetWriteFileFunc(writerFunc func(dest string) (io.WriteCloser, error)) {
fileWriter = writerFunc
}
func fileWriterToFS(dest string) (io.WriteCloser, error) {
if err := os.MkdirAll(path.Dir(dest), 0751); err != nil {
return err
return nil, err
}
// Write file
if fdto, err := os.Create(dest); err != nil {
return os.Create(dest)
}
func importFile(i Importer, URI string, dest string) error {
if fdfrom, closer, err := GetFile(i, URI); err != nil {
os.Remove(dest)
return err
} else {
defer fdto.Close()
defer closer()
if fdfrom, closer, err := GetFile(i, URI); err != nil {
os.Remove(dest)
return err
} else {
defer closer()
_, err = io.Copy(fdto, fdfrom)
fdto, err := fileWriter(dest)
if err != nil {
return err
}
defer fdto.Close()
_, err = io.Copy(fdto, fdfrom)
return err
}
}