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