@@ -52,12 +52,8 @@ type ProjectConfigManager interface {
5252 GetProjectID (ctx context.Context ) (string , error )
5353 SetProjectID (ctx context.Context , projectID string ) (string , error )
5454 GetManifestSource (ctx context.Context ) (ManifestSource , error )
55- SetManifestSource (ctx context.Context , source ManifestSource ) error
5655 GetSurveyConfig (ctx context.Context , name string ) (SurveyConfig , error )
5756 SetSurveyConfig (ctx context.Context , name string , surveyConfig SurveyConfig ) error
58- ReadProjectConfigFile (ctx context.Context ) (ProjectConfig , error )
59- WriteProjectConfigFile (ctx context.Context , projectConfig ProjectConfig ) (string , error )
60- ProjectConfigJSONFileExists (projectDirPath string ) bool
6157
6258 Cache () cache.Cacher
6359}
@@ -119,7 +115,7 @@ func (c *ProjectConfig) GetProjectID(ctx context.Context) (string, error) {
119115 span , ctx = opentracing .StartSpanFromContext (ctx , "GetProjectID" )
120116 defer span .Finish ()
121117
122- var projectConfig , err = c . ReadProjectConfigFile (ctx )
118+ var projectConfig , err = ReadProjectConfigFile (ctx , c . fs , c . os )
123119 if err != nil {
124120 return "" , err
125121 }
@@ -133,14 +129,14 @@ func (c *ProjectConfig) SetProjectID(ctx context.Context, projectID string) (str
133129 span , _ = opentracing .StartSpanFromContext (ctx , "SetProjectID" )
134130 defer span .Finish ()
135131
136- var projectConfig , err = c . ReadProjectConfigFile (ctx )
132+ var projectConfig , err = ReadProjectConfigFile (ctx , c . fs , c . os )
137133 if err != nil {
138134 return "" , err
139135 }
140136
141137 projectConfig .ProjectID = projectID
142138
143- _ , err = c . WriteProjectConfigFile (ctx , projectConfig )
139+ _ , err = WriteProjectConfigFile (ctx , c . fs , c . os , projectConfig )
144140 if err != nil {
145141 return "" , err
146142 }
@@ -154,7 +150,7 @@ func (c *ProjectConfig) GetManifestSource(ctx context.Context) (ManifestSource,
154150 span , ctx = opentracing .StartSpanFromContext (ctx , "GetManifestSource" )
155151 defer span .Finish ()
156152
157- var projectConfig , err = c . ReadProjectConfigFile (ctx )
153+ var projectConfig , err = ReadProjectConfigFile (ctx , c . fs , c . os )
158154 if err != nil {
159155 return "" , err
160156 }
@@ -175,18 +171,18 @@ func (c *ProjectConfig) GetManifestSource(ctx context.Context) (ManifestSource,
175171}
176172
177173// SetManifestSource saves the manifest source preference for the project
178- func ( c * ProjectConfig ) SetManifestSource (ctx context.Context , source ManifestSource ) error {
174+ func SetManifestSource (ctx context.Context , fs afero. Fs , os types. Os , source ManifestSource ) error {
179175 span , ctx := opentracing .StartSpanFromContext (ctx , "SetManifestSource" )
180176 defer span .Finish ()
181- projectConfig , err := c . ReadProjectConfigFile (ctx )
177+ projectConfig , err := ReadProjectConfigFile (ctx , fs , os )
182178 if err != nil {
183179 return err
184180 }
185181 if projectConfig .Manifest == nil {
186182 projectConfig .Manifest = & ManifestConfig {}
187183 }
188184 projectConfig .Manifest .Source = source .String ()
189- _ , err = c . WriteProjectConfigFile (ctx , projectConfig )
185+ _ , err = WriteProjectConfigFile (ctx , fs , os , projectConfig )
190186 if err != nil {
191187 return err
192188 }
@@ -199,7 +195,7 @@ func (c *ProjectConfig) GetSurveyConfig(ctx context.Context, name string) (Surve
199195 span , ctx = opentracing .StartSpanFromContext (ctx , "GetSurveyConfig" )
200196 defer span .Finish ()
201197
202- var projectConfig , err = c . ReadProjectConfigFile (ctx )
198+ var projectConfig , err = ReadProjectConfigFile (ctx , c . fs , c . os )
203199 if err != nil {
204200 return SurveyConfig {}, err
205201 }
@@ -218,7 +214,7 @@ func (c *ProjectConfig) SetSurveyConfig(ctx context.Context, name string, survey
218214 span , ctx = opentracing .StartSpanFromContext (ctx , "SetSurveyConfig" )
219215 defer span .Finish ()
220216
221- var projectConfig , err = c . ReadProjectConfigFile (ctx )
217+ var projectConfig , err = ReadProjectConfigFile (ctx , c . fs , c . os )
222218 if err != nil {
223219 return err
224220 }
@@ -228,7 +224,7 @@ func (c *ProjectConfig) SetSurveyConfig(ctx context.Context, name string, survey
228224 CompletedAt : surveyConfig .CompletedAt ,
229225 }
230226
231- _ , err = c . WriteProjectConfigFile (ctx , projectConfig )
227+ _ , err = WriteProjectConfigFile (ctx , c . fs , c . os , projectConfig )
232228 if err != nil {
233229 return err
234230 }
@@ -237,24 +233,24 @@ func (c *ProjectConfig) SetSurveyConfig(ctx context.Context, name string, survey
237233}
238234
239235// ReadProjectConfigFile reads the project-level config.json file
240- func ( c * ProjectConfig ) ReadProjectConfigFile (ctx context.Context ) (ProjectConfig , error ) {
236+ func ReadProjectConfigFile (ctx context.Context , fs afero. Fs , os types. Os ) (ProjectConfig , error ) {
241237 var span opentracing.Span
242238 span , _ = opentracing .StartSpanFromContext (ctx , "ReadProjectConfigFile" )
243239 defer span .Finish ()
244240
245241 var projectConfig ProjectConfig
246242
247- projectDirPath , err := GetProjectDirPath (c . fs , c . os )
243+ projectDirPath , err := GetProjectDirPath (fs , os )
248244 if err != nil {
249245 return projectConfig , err
250246 }
251247
252- if ! c . ProjectConfigJSONFileExists (projectDirPath ) {
248+ if ! ProjectConfigJSONFileExists (fs , os , projectDirPath ) {
253249 return projectConfig , nil
254250 }
255251
256252 var projectConfigFilePath = GetProjectConfigJSONFilePath (projectDirPath )
257- projectConfigFileBytes , err := afero .ReadFile (c . fs , projectConfigFilePath )
253+ projectConfigFileBytes , err := afero .ReadFile (fs , projectConfigFilePath )
258254 if err != nil {
259255 return projectConfig , err
260256 }
@@ -274,7 +270,7 @@ func (c *ProjectConfig) ReadProjectConfigFile(ctx context.Context) (ProjectConfi
274270}
275271
276272// WriteProjectConfigFile writes the project-level config.json file
277- func ( c * ProjectConfig ) WriteProjectConfigFile (ctx context.Context , projectConfig ProjectConfig ) (string , error ) {
273+ func WriteProjectConfigFile (ctx context.Context , fs afero. Fs , os types. Os , projectConfig ProjectConfig ) (string , error ) {
278274 var span opentracing.Span
279275 span , _ = opentracing .StartSpanFromContext (ctx , "WriteProjectConfigFile" )
280276 defer span .Finish ()
@@ -284,13 +280,13 @@ func (c *ProjectConfig) WriteProjectConfigFile(ctx context.Context, projectConfi
284280 return "" , err
285281 }
286282
287- projectDirPath , err := GetProjectDirPath (c . fs , c . os )
283+ projectDirPath , err := GetProjectDirPath (fs , os )
288284 if err != nil {
289285 return "" , err
290286 }
291287
292288 projectConfigFilePath := GetProjectConfigJSONFilePath (projectDirPath )
293- err = afero .WriteFile (c . fs , projectConfigFilePath , projectConfigBytes , 0600 )
289+ err = afero .WriteFile (fs , projectConfigFilePath , projectConfigBytes , 0644 )
294290 if err != nil {
295291 return "" , err
296292 }
@@ -299,9 +295,9 @@ func (c *ProjectConfig) WriteProjectConfigFile(ctx context.Context, projectConfi
299295}
300296
301297// ProjectConfigJSONFileExists returns true if the .slack/config.json file exists
302- func ( c * ProjectConfig ) ProjectConfigJSONFileExists ( projectDirPath string ) bool {
298+ func ProjectConfigJSONFileExists ( fs afero. Fs , os types. Os , projectDirPath string ) bool {
303299 var projectConfigFilePath = GetProjectConfigJSONFilePath (projectDirPath )
304- _ , err := c . fs .Stat (projectConfigFilePath )
300+ _ , err := fs .Stat (projectConfigFilePath )
305301 return ! os .IsNotExist (err )
306302}
307303
0 commit comments