77 "path/filepath"
88)
99
10- var defaultDirPermissions = os .FileMode (0776 )
11-
1210func Init (rootDir string , storageDir string ) error {
1311 // Get storage directory as absolute path
1412 storageDir , err := filepath .Abs (storageDir )
@@ -27,7 +25,7 @@ func Init(rootDir string, storageDir string) error {
2725 fileInfo , err := os .Stat (storageDir )
2826 if err != nil {
2927 // Create storage dir and necessary parents
30- err = os .MkdirAll (storageDir , defaultDirPermissions )
28+ err = os .MkdirAll (storageDir , storageDirPermissions )
3129 if err != nil {
3230 log .Print (log .ColorRed ("✘" ), "Failed to create storage directory" , log .ColorFile (storageDir ))
3331 log .JsonLogger .Issues = append (log .JsonLogger .Issues , log.JsonIssue {
@@ -39,12 +37,27 @@ func Init(rootDir string, storageDir string) error {
3937 return err
4038 }
4139
42- log .Print (log .ColorGreen ("✔" ), "Created storage directory" )
40+ // Set storage dir permissions
41+ err = os .Chmod (storageDir , storageDirPermissions )
42+ if err != nil {
43+ log .Print (log .ColorRed ("✘" ), "Failed to set storage directory permissions" , log .ColorFile (storageDir ))
44+ log .JsonLogger .Issues = append (log .JsonLogger .Issues , log.JsonIssue {
45+ Severity : "error" ,
46+ Message : "failed to set storage directory permissions" ,
47+ Location : storageDir ,
48+ })
49+
50+ return err
51+ }
52+
53+ log .Print (log .ColorGreen ("✔" ), "Created storage directory" , log .ColorFile (storageDir ))
4354 log .JsonLogger .Actions = append (log .JsonLogger .Actions , log.JsonAction {
4455 Action : "created storage directory" ,
4556 Path : storageDir ,
4657 })
4758 } else {
59+ log .Print (log .ColorGreen ("✔" ), "Storage directory already exists" , log .ColorFile (storageDir ))
60+
4861 // Ensure destination is a directory
4962 if ! fileInfo .IsDir () {
5063 log .Print (log .ColorRed ("✘" ), "Destination isn't a directory" , log .ColorFile (storageDir ))
@@ -85,7 +98,6 @@ func Init(rootDir string, storageDir string) error {
8598 }
8699
87100 log .Print (log .ColorGreen ("✔" ), "Wrote config" , log .ColorFile (filepath .Join (rootDir , config .ConfigFileName )))
88- log .Print (" storage dir" , log .ColorFile (storageDir ))
89101 log .JsonLogger .Actions = append (log .JsonLogger .Actions , log.JsonAction {
90102 Action : "wrote config" ,
91103 Path : filepath .Join (rootDir , config .ConfigFileName ),
0 commit comments