Skip to content

Commit

Permalink
added pretty_json.nim script
Browse files Browse the repository at this point in the history
  • Loading branch information
Araq committed Aug 18, 2015
1 parent 5a262a0 commit 1e55e2f
Showing 1 changed file with 41 additions and 0 deletions.
41 changes: 41 additions & 0 deletions pretty_json.nim
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@

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()

0 comments on commit 1e55e2f

Please sign in to comment.