github.com/caos/orbos@v1.5.14-0.20221103111702-e6cd0cea7ad4/internal/utils/helper/git.go (about)

     1  package helper
     2  
     3  import (
     4  	"io/ioutil"
     5  	"os"
     6  	"path/filepath"
     7  
     8  	"github.com/caos/orbos/pkg/git"
     9  )
    10  
    11  func CopyFolderToLocal(git *git.Client, tempDirectory, folderRelativePath string) error {
    12  	folderPath := filepath.Join(tempDirectory, folderRelativePath)
    13  
    14  	if err := RecreatePath(folderPath); err != nil {
    15  		return err
    16  	}
    17  
    18  	files, subfolders, err := git.ReadFolder(folderRelativePath)
    19  	if err != nil {
    20  		return err
    21  	}
    22  
    23  	for filename, file := range files {
    24  		filePath := filepath.Join(folderPath, filename)
    25  		err := ioutil.WriteFile(filePath, file, os.ModePerm)
    26  		if err != nil {
    27  			return err
    28  		}
    29  	}
    30  
    31  	for _, folder := range subfolders {
    32  		if err := CopyFolderToLocal(git, tempDirectory, filepath.Join(folderRelativePath, folder)); err != nil {
    33  			return err
    34  		}
    35  	}
    36  
    37  	return nil
    38  }