import strutils, json, os proc cleanupWhitespace(s: string): string = ## Removes trailing whitespace and normalizes line endings to LF. result = newStringOfCap(s.len) var i = 0 while i < s.len: if s[i] == ' ': var j = i+1 while s[j] == ' ': inc j if s[j] == '\c': inc j if s[j] == '\L': inc j result.add '\L' i = j elif s[j] == '\L': result.add '\L' i = j+1 else: result.add ' ' inc i elif s[i] == '\c': inc i if s[i] == '\L': inc i result.add '\L' elif s[i] == '\L': result.add '\L' inc i else: result.add s[i] inc i if result[^1] != '\L': result.add '\L' proc editJson() = var contents = parseFile("packages.json") doAssert contents.kind == JArray writeFile("packages.json", contents.pretty.cleanupWhitespace) editJson()