Add tac utility

This commit is contained in:
joachimschmidt557 2019-03-29 11:15:36 +01:00
parent 1b57bc6fa3
commit 33a314f900
3 changed files with 53 additions and 4 deletions

21
nl.nim
View file

@ -1,11 +1,26 @@
import cligen
import common
proc main(files:seq[string], lineIncrement=1) =
proc digits(num:int): int =
result = 1
var x = num
while x div 10 >= 1:
inc result
x = x div 10
proc spaces(num:int): string =
for i in 1..num:
result &= " "
proc formatNumber(num:int, width:int): string =
result = if digits(num) > width: $num
else: spaces(width - digits(num)) & $num
proc main(files:seq[string], lineIncrement=1, numberSeparator="\t", numberWidth=6) =
var lineNr = 0
for file in files:
var lineNr = 0
for line in lines(file):
lineNr += lineIncrement
writeLine(stdout, $(lineNr) & line)
writeLine(stdout, formatNumber(lineNr, numberWidth) & numberSeparator & line)
dispatch(main, version=("version", nimbaseVersion))