public AssertResult FileHeader()

in src/PSRule/Runtime/Assert.cs [892:926]


        public AssertResult FileHeader(PSObject inputObject, string field, string[] header, string prefix = null)
        {
            // Guard parameters
            if (GuardNullParam(inputObject, nameof(inputObject), out var result) ||
                GuardNullOrEmptyParam(field, nameof(field), out result) ||
                GuardField(inputObject, field, false, out var fieldValue, out result) ||
                GuardString(fieldValue, out var value, out result))
                return result;

            // File does not exist
            if (!TryFilePath(value, out _))
                return Fail(ReasonStrings.FilePath, value);

            // No header
            if (header == null || header.Length == 0)
                return Pass();

            if (string.IsNullOrEmpty(prefix))
                prefix = DetectLinePrefix(GetFileType(value));

            var lineNo = 0;
            foreach (var content in File.ReadLines(value))
            {
                if (lineNo >= header.Length)
                    break;

                if (content != string.Concat(prefix, header[lineNo]))
                    return Fail(ReasonStrings.FileHeader);

                lineNo++;
            }

            // Catch file has less lines than header
            return lineNo < header.Length ? Fail(ReasonStrings.FileHeader) : Pass();
        }