This changes the error handling in loading ignores slightly: - There is a new ParseError type that is returned as the error (somewhere in the chain) when the problem was not an I/O error loading the file, but some issue with the contents. - If the file was read successfully but not parsed successfully we still return the lines read (in addition to nil patterns and a ParseError). - In the API, if the error IsParseError then we return a successful HTTP response with the lines and the actual error included in the JSON object. - In the GUI, as long as the HTTP call to load the ignores was successful we can edit the ignores. If there was an error we show this as a validation error on the dialog. Also some cleanup on the Javascript side as it for some reason used jQuery instead of Angular for this editor...
This commit is contained in:
+7
-3
@@ -1656,11 +1656,15 @@ func (m *model) GetIgnores(folder string) ([]string, []string, error) {
|
||||
ignores = ignore.New(fs.NewFilesystem(cfg.FilesystemType, cfg.Path))
|
||||
}
|
||||
|
||||
if err := ignores.Load(".stignore"); err != nil && !fs.IsNotExist(err) {
|
||||
return nil, nil, err
|
||||
err := ignores.Load(".stignore")
|
||||
if fs.IsNotExist(err) {
|
||||
// Having no ignores is not an error.
|
||||
return nil, nil, nil
|
||||
}
|
||||
|
||||
return ignores.Lines(), ignores.Patterns(), nil
|
||||
// Return lines and patterns, which may have some meaning even when err
|
||||
// != nil, depending on the specific error.
|
||||
return ignores.Lines(), ignores.Patterns(), err
|
||||
}
|
||||
|
||||
func (m *model) SetIgnores(folder string, content []string) error {
|
||||
|
||||
Reference in New Issue
Block a user