github.com/Files-com/files-sdk-go/v2@v2.1.2/file/tmpdownloadpath_darwin.go (about)

     1  //go:build darwin
     2  
     3  package file
     4  
     5  import (
     6  	"fmt"
     7  	"os"
     8  	"path/filepath"
     9  )
    10  
    11  func tmpDownloadPath(path string) string {
    12  	return _tmpDownloadPath(path, 0)
    13  }
    14  
    15  func _tmpDownloadPath(path string, index int) string {
    16  	var name string
    17  
    18  	if index == 0 {
    19  		name = fmt.Sprintf("%v.download", path)
    20  	} else {
    21  		name = fmt.Sprintf("%v (%v).download", path, index)
    22  	}
    23  	_, err := os.Stat(name)
    24  	if os.IsNotExist(err) {
    25  		os.MkdirAll(name, 0755)
    26  		_, fileName := filepath.Split(path)
    27  		return filepath.Join(name, fileName)
    28  	}
    29  	return _tmpDownloadPath(path, index+1)
    30  }
    31  
    32  func finalizeTmpDownload(tmpName string, finalPath string) error {
    33  	err := os.Rename(tmpName, finalPath)
    34  	if err != nil {
    35  		return err
    36  	}
    37  	downloadPackage, _ := filepath.Split(tmpName)
    38  	return os.Remove(downloadPackage)
    39  }