mirror of
https://github.com/grafana/grafana.git
synced 2025-08-02 21:52:43 +08:00
@ -120,6 +120,7 @@ func RemoveGitBuildFromName(pluginName, filename string) string {
|
||||
}
|
||||
|
||||
var retryCount = 0
|
||||
var permissionsDeniedMessage = "Could not create %s. Permission denied. Make sure you have write access to plugindir"
|
||||
|
||||
func downloadFile(pluginName, filePath, url string) (err error) {
|
||||
defer func() {
|
||||
@ -153,16 +154,16 @@ func downloadFile(pluginName, filePath, url string) (err error) {
|
||||
newFile := path.Join(filePath, RemoveGitBuildFromName(pluginName, zf.Name))
|
||||
|
||||
if zf.FileInfo().IsDir() {
|
||||
os.Mkdir(newFile, 0777)
|
||||
err := os.Mkdir(newFile, 0777)
|
||||
if PermissionsError(err) {
|
||||
return fmt.Errorf(permissionsDeniedMessage, newFile)
|
||||
}
|
||||
} else {
|
||||
dst, err := os.Create(newFile)
|
||||
if err != nil {
|
||||
if strings.Contains(err.Error(), "permission denied") {
|
||||
return fmt.Errorf(
|
||||
"Could not create file %s. permission deined. Make sure you have write access to plugindir",
|
||||
newFile)
|
||||
}
|
||||
if PermissionsError(err) {
|
||||
return fmt.Errorf(permissionsDeniedMessage, newFile)
|
||||
}
|
||||
|
||||
defer dst.Close()
|
||||
src, err := zf.Open()
|
||||
if err != nil {
|
||||
@ -176,3 +177,7 @@ func downloadFile(pluginName, filePath, url string) (err error) {
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
func PermissionsError(err error) bool {
|
||||
return err != nil && strings.Contains(err.Error(), "permission denied")
|
||||
}
|
||||
|
Reference in New Issue
Block a user