add noit always newline on template
This commit is contained in:
@@ -356,14 +356,14 @@ func BuildOverlayIndir(nodeInfo node.NodeInfo, overlayNames []string, outputDir
|
||||
var fileBuffer bytes.Buffer
|
||||
// search for magic file name comment
|
||||
fileScanner := bufio.NewScanner(bytes.NewReader(buffer.Bytes()))
|
||||
fileScanner.Split(bufio.ScanLines)
|
||||
fileScanner.Split(scanLines)
|
||||
reg := regexp.MustCompile(`.*{{\s*/\*\s*file\s*["'](.*)["']\s*\*/\s*}}.*`)
|
||||
foundFileComment := false
|
||||
for fileScanner.Scan() {
|
||||
line := fileScanner.Text()
|
||||
filenameFromTemplate := reg.FindAllStringSubmatch(line, -1)
|
||||
if len(filenameFromTemplate) != 0 {
|
||||
wwlog.Printf(wwlog.DEBUG, "Found multifle comment, new filename %s\n", filenameFromTemplate[0][1])
|
||||
wwlog.Printf(wwlog.DEBUG, "Found multifile comment, new filename %s\n", filenameFromTemplate[0][1])
|
||||
if foundFileComment {
|
||||
err = carefulWriteBuffer(path.Join(outputDir, destFileName),
|
||||
fileBuffer, backupFile, info.Mode())
|
||||
@@ -379,7 +379,7 @@ func BuildOverlayIndir(nodeInfo node.NodeInfo, overlayNames []string, outputDir
|
||||
destFileName = path.Join(path.Dir(destFile), filenameFromTemplate[0][1])
|
||||
foundFileComment = true
|
||||
} else {
|
||||
_, _ = fileBuffer.WriteString(line + "\n")
|
||||
_, _ = fileBuffer.WriteString(line)
|
||||
}
|
||||
}
|
||||
err = carefulWriteBuffer(path.Join(outputDir, destFileName), fileBuffer, backupFile, info.Mode())
|
||||
@@ -449,3 +449,20 @@ func carefulWriteBuffer(destFile string, buffer bytes.Buffer, backupFile bool, p
|
||||
_, err = buffer.WriteTo(w)
|
||||
return err
|
||||
}
|
||||
|
||||
// Simple version of ScanLines, but include the line break
|
||||
func scanLines(data []byte, atEOF bool) (advance int, token []byte, err error) {
|
||||
if atEOF && len(data) == 0 {
|
||||
return 0, nil, nil
|
||||
}
|
||||
if i := bytes.IndexByte(data, '\n'); i >= 0 {
|
||||
// We have a full newline-terminated line.
|
||||
return i + 1, data[0 : i+1], nil
|
||||
}
|
||||
// If we're at EOF, we have a final, non-terminated line. Return it.
|
||||
if atEOF {
|
||||
return len(data), data, nil
|
||||
}
|
||||
// Request more data.
|
||||
return 0, nil, nil
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user