From 9f927b8685c57798ea679295011b2529c17ffc1a Mon Sep 17 00:00:00 2001 From: Myzel394 <50424412+Myzel394@users.noreply.github.com> Date: Wed, 9 Oct 2024 22:04:29 +0200 Subject: [PATCH] fix(fstab): Make options, freq and spec optional --- server/handlers/fstab/analyzer/fields.go | 42 ++---------------------- server/handlers/fstab/analyzer/values.go | 18 +++++++--- 2 files changed, 15 insertions(+), 45 deletions(-) diff --git a/server/handlers/fstab/analyzer/fields.go b/server/handlers/fstab/analyzer/fields.go index 1f8b054..371e243 100644 --- a/server/handlers/fstab/analyzer/fields.go +++ b/server/handlers/fstab/analyzer/fields.go @@ -83,46 +83,8 @@ func analyzeFieldAreFilled( Character: entry.Fields.FilesystemType.End.Character, }, }, - Message: "The options field is missing", - Severity: &common.SeverityError, - }) - - continue - } - - if entry.Fields.Freq == nil || entry.Fields.Freq.Value.Value == "" { - ctx.diagnostics = append(ctx.diagnostics, protocol.Diagnostic{ - Range: protocol.Range{ - Start: protocol.Position{ - Line: entry.Fields.Start.Line, - Character: entry.Fields.Options.End.Character, - }, - End: protocol.Position{ - Line: entry.Fields.Start.Line, - Character: entry.Fields.Options.End.Character, - }, - }, - Message: "The freq field is missing", - Severity: &common.SeverityError, - }) - - continue - } - - if entry.Fields.Pass == nil || entry.Fields.Pass.Value.Value == "" { - ctx.diagnostics = append(ctx.diagnostics, protocol.Diagnostic{ - Range: protocol.Range{ - Start: protocol.Position{ - Line: entry.Fields.Start.Line, - Character: entry.Fields.Freq.End.Character, - }, - End: protocol.Position{ - Line: entry.Fields.Start.Line, - Character: entry.Fields.Freq.End.Character, - }, - }, - Message: "The pass field is missing", - Severity: &common.SeverityError, + Message: `The options field is empty. The usual convention is to use at least "defaults" keyword there.`, + Severity: &common.SeverityWarning, }) continue diff --git a/server/handlers/fstab/analyzer/values.go b/server/handlers/fstab/analyzer/values.go index fd6d731..bd7d8ba 100644 --- a/server/handlers/fstab/analyzer/values.go +++ b/server/handlers/fstab/analyzer/values.go @@ -16,18 +16,26 @@ func analyzeValuesAreValid( for it.Next() { entry := it.Value().(*ast.FstabEntry) - mountOptions := entry.FetchMountOptionsField(true) checkField(ctx, entry.Fields.Spec, fields.SpecField) checkField(ctx, entry.Fields.MountPoint, fields.MountPointField) checkField(ctx, entry.Fields.FilesystemType, fields.FileSystemTypeField) - if mountOptions != nil { - checkField(ctx, entry.Fields.Options, mountOptions) + if entry.Fields.Options != nil { + mountOptions := entry.FetchMountOptionsField(true) + + if mountOptions != nil { + checkField(ctx, entry.Fields.Options, mountOptions) + } } - checkField(ctx, entry.Fields.Freq, fields.FreqField) - checkField(ctx, entry.Fields.Pass, fields.PassField) + if entry.Fields.Freq != nil { + checkField(ctx, entry.Fields.Freq, fields.FreqField) + } + + if entry.Fields.Pass != nil { + checkField(ctx, entry.Fields.Pass, fields.PassField) + } } }