From 0c375acd686f2e7f3116e243bf9c89a836d5be99 Mon Sep 17 00:00:00 2001 From: pacien Date: Fri, 30 Nov 2018 21:16:04 +0100 Subject: rename main file --- src/main.nim | 56 -------------------------------------------------------- 1 file changed, 56 deletions(-) delete mode 100644 src/main.nim (limited to 'src/main.nim') diff --git a/src/main.nim b/src/main.nim deleted file mode 100644 index cf76f5e..0000000 --- a/src/main.nim +++ /dev/null @@ -1,56 +0,0 @@ -# gzip-like LZSS compressor -# Copyright (C) 2018 Pacien TRAN-GIRARD -# -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU Affero General Public License as -# published by the Free Software Foundation, either version 3 of the -# License, or (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU Affero General Public License for more details. -# -# You should have received a copy of the GNU Affero General Public License -# along with this program. If not, see . - -import os, streams, sugar -import bitio/bitreader, bitio/bitwriter, blocks/streamblock - -proc transform*(operation: (BitReader, BitWriter) -> void, input, output: string) = - let inputStream = openFileStream(input, fmRead) - defer: inputStream.close() - let outputStream = openFileStream(output, fmWrite) - defer: outputStream.close() - operation(inputStream.bitReader(), outputStream.bitWriter()) - -proc compress*(bitReader: BitReader, bitWriter: BitWriter) = - while not bitReader.atEnd(): - let streamBlock = streamblock.readRaw(bitReader) - streamBlock.writeSerialisedTo(bitWriter) - bitWriter.flush() - -proc decompress*(bitReader: BitReader, bitWriter: BitWriter) = - var hasMore = true - while hasMore: - let streamBlock = streamblock.readSerialised(bitReader) - streamBlock.writeRawTo(bitWriter) - hasMore = not streamBlock.isLast() - bitWriter.flush() - -proc printUsage(output: File) = - output.writeLine("Usage: " & paramStr(0) & " ") - -when isMainModule: - if paramCount() != 3: - stderr.writeLine("Error: invalid argument count.") - printUsage(stderr) - quit(1) - - case paramStr(1): - of "compress": compress.transform(paramStr(2), paramStr(3)) - of "decompress": decompress.transform(paramStr(2), paramStr(3)) - else: - stderr.writeLine("Error: invalid operation.") - printUsage(stderr) - quit(1) -- cgit v1.2.3