Skip to content

Commit

Permalink
fix(template): generate scripts with executable permission (#120)
Browse files Browse the repository at this point in the history
Signed-off-by: Tobias Brumhard <tobias.brumhard@mail.schwarz>
  • Loading branch information
brumhard committed May 24, 2022
1 parent 0dc50d5 commit d4effd3
Showing 1 changed file with 11 additions and 5 deletions.
16 changes: 11 additions & 5 deletions pkg/gotemplate/new.go
Original file line number Diff line number Diff line change
Expand Up @@ -22,9 +22,9 @@ import (
)

const (
minGoVersion = "1.15"
permissionDirectory = 0755
permissionFile = 0644
minGoVersion = "1.15"
permissionRWX = 0755
permissionRW = 0644
)

var (
Expand Down Expand Up @@ -211,7 +211,7 @@ func (gt *GT) InitNewProject(opts *NewRepositoryOptions) (err error) {

pathToWrite = strings.ReplaceAll(pathToWrite, gotemplate.Key, targetDir)
if d.IsDir() {
return os.MkdirAll(pathToWrite, permissionDirectory)
return os.MkdirAll(pathToWrite, permissionRWX)
}

fileBytes, err := fs.ReadFile(gotemplate.FS, path)
Expand All @@ -224,7 +224,13 @@ func (gt *GT) InitNewProject(opts *NewRepositoryOptions) (err error) {
return err
}

return os.WriteFile(pathToWrite, []byte(data), permissionFile)
filePermissions := fs.FileMode(permissionRW)
// files that contain a shebang should be executable
if strings.HasPrefix(strings.TrimSpace(data), "#!") {
filePermissions = permissionRWX
}

return os.WriteFile(pathToWrite, []byte(data), filePermissions)
})
if err != nil {
return err
Expand Down

0 comments on commit d4effd3

Please sign in to comment.