nimbase/tac.nim
joachimschmidt557 33a314f900 Add tac utility
2019-03-29 11:15:36 +01:00

34 lines
837 B
Nim

import cligen, os, streams
import common
proc catFile(file:string) =
if not existsFile(file):
err "tac: " & file & ": No such file or directory"
system.quit 1
var
f = open(file, fmRead)
reverseLines: seq[string]
for line in lines(f):
reverseLines = line & reverseLines
for line in reverseLines:
writeLine(stdout, line)
proc catStdin() =
var
line = ""
reverseLines: seq[string]
while stdin.readLine(line):
reverseLines = line & reverseLines
for line in reverseLines:
writeLine(stdout, line)
proc main(files:seq[string]) =
if files.len == 0:
catStdin()
for file in files:
if file == "-":
catStdin()
else:
catFile(file)
dispatch(main, version=("version", nimbaseVersion))