refactor: export SetPermissions function

This commit is contained in:
Jose Diaz-Gonzalez
2020-10-10 17:25:04 -04:00
committed by Jose Diaz-Gonzalez
parent 943e032d12
commit 66696d0b46
2 changed files with 39 additions and 40 deletions

View File

@@ -8,6 +8,7 @@ import (
"io/ioutil"
"os"
"os/exec"
"os/user"
"path/filepath"
"reflect"
"regexp"
@@ -804,6 +805,36 @@ func PlugnTriggerSetup(triggerName string, args ...string) *sh.Session {
return sh.Command("plugn", shellArgs...)
}
// SetPermissions sets the proper owner and filemode for a given file
func SetPermissions(path string, fileMode os.FileMode) error {
if err := os.Chmod(path, fileMode); err != nil {
return err
}
systemGroup := GetenvWithDefault("DOKKU_SYSTEM_GROUP", "dokku")
systemUser := GetenvWithDefault("DOKKU_SYSTEM_USER", "dokku")
group, err := user.LookupGroup(systemGroup)
if err != nil {
return err
}
user, err := user.Lookup(systemUser)
if err != nil {
return err
}
uid, err := strconv.Atoi(user.Uid)
if err != nil {
return err
}
gid, err := strconv.Atoi(group.Gid)
if err != nil {
return err
}
return os.Chown(path, uid, gid)
}
func times(str string, n int) (out string) {
for i := 0; i < n; i++ {
out += str