MCPcopy
hub / github.com/slimtoolkit/slim / readKernelFeatures

Function readKernelFeatures

pkg/system/kernel_linux.go:124–172  ·  view source on GitHub ↗
(filename string)

Source from the content-addressed store, hash-verified

122}
123
124func readKernelFeatures(filename string) (map[string]string, error) {
125 freader, err := os.Open(filename)
126 if err != nil {
127 return nil, err
128 }
129 defer freader.Close()
130
131 areader, err := gzip.NewReader(freader)
132 if err != nil {
133 return nil, err
134 }
135 defer areader.Close()
136
137 var lines []string
138
139 scanner := bufio.NewScanner(areader)
140 kernelFeatures := map[string]string{}
141 for scanner.Scan() {
142 line := strings.TrimSpace(scanner.Text())
143 if line == "" {
144 continue
145 }
146 if line[0] == '#' {
147 //todo: extract section metadata from comments
148 continue
149 }
150
151 lineParts := strings.Split(line, "=")
152 if len(lineParts) == 2 {
153 flagKey := strings.TrimSpace(lineParts[0])
154 flagValue := strings.TrimSpace(lineParts[1])
155 flagValue = strings.Trim(flagValue, "\"")
156
157 lines = append(lines, line)
158 kernelFeatures[flagKey] = flagValue
159 }
160 }
161
162 if err = scanner.Err(); err != nil {
163 //if err == bufio.ErrTooLong {
164 // log.Println("line length error:", err)
165 //} else {
166 // log.Println("other scanner error:", err)
167 //}
168 return kernelFeatures, err
169 }
170
171 return kernelFeatures, nil
172}

Callers 1

Calls 1

CloseMethod · 0.65

Tested by

no test coverage detected