diff options
author | Thorbjørn Lindeijer <bjorn@lindeijer.nl> | 2025-02-12 09:39:28 +0100 |
---|---|---|
committer | Thorbjørn Lindeijer <bjorn@lindeijer.nl> | 2025-02-12 11:44:56 +0100 |
commit | 95311dc4a083b8b12529f3617d2feae8fa5eb684 (patch) | |
tree | c64a04d53ff2a0e65d8ceb93d80a035f73d46900 | |
parent | 63807cbe838a32cb6805f0a8ee5efe1548513a83 (diff) | |
download | tools-python-adler32.tar.gz tools-python-adler32.tar.bz2 tools-python-adler32.tar.xz tools-python-adler32.zip |
Replaced adler32.c with adler32.pypython-adler32
The task is rather easier in Python and this way we have a ready to run
script instead of a tool that needs compilation first. Execution speed
is about the same.
Goodbye little C program, we had a good time!
-rw-r--r-- | .gitignore | 1 | ||||
-rw-r--r-- | client/adler32.c | 79 | ||||
-rwxr-xr-x | client/adler32.py | 20 | ||||
-rwxr-xr-x | client/make-updates.sh | 11 |
4 files changed, 23 insertions, 88 deletions
@@ -1,6 +1,5 @@ /aligncsv *.pyc -/client/adler32 /client/commit.txt /client/musiccommit.txt /client/files diff --git a/client/adler32.c b/client/adler32.c deleted file mode 100644 index 606c739..0000000 --- a/client/adler32.c +++ /dev/null @@ -1,79 +0,0 @@ -/* - * adler32.c (c) 2006 Bjorn Lindeijer - * License: GPL, v2 or later - * - * Calculates Adler-32 checksums for all files passed as argument. - * - * Usage: adler32 [file]... - */ - -#include <stdlib.h> -#include <stdio.h> -#include <zlib.h> - -/** - * Calculates the Adler-32 checksum for the given file. - */ -unsigned long fadler32(FILE *file) -{ - // Obtain file size - fseek(file, 0, SEEK_END); - long fileSize = ftell(file); - rewind(file); - - // Calculate Adler-32 checksum - char *buffer = (char*) malloc(fileSize); - fread(buffer, 1, fileSize, file); - unsigned long adler = adler32(0L, Z_NULL, 0); - adler = adler32(adler, (Bytef*) buffer, fileSize); - free(buffer); - - return adler; -} - -/** - * Prints out usage and exists. - */ -void print_usage() -{ - printf("Usage: adler32 mode [file]...\n"); - exit(0); -} - -int main(int argc, char *argv[]) -{ - int i; /**< Loops through arguments. */ - - if (argc < 2) - { - print_usage(); - } - - int mode = atoi(argv[1]); - - for (i = 2; i < argc; ++i) - { - FILE *file = fopen(argv[i], "r"); - - if (!file) - { - printf("Error while opening '%s' for reading!\n", argv[i]); - exit(1); - } - - unsigned long adler = fadler32(file); - switch (mode) - { - case 0: - default: - printf("%s %lx\n", argv[i], adler); - break; - case 1: - printf("%lx", adler); - break; - } - fclose(file); - } - - return 0; -} diff --git a/client/adler32.py b/client/adler32.py new file mode 100755 index 0000000..65260e0 --- /dev/null +++ b/client/adler32.py @@ -0,0 +1,20 @@ +#!/usr/bin/env python3 +import sys +import zlib + +def adler32(file): + with open(file, 'rb') as f: + checksum = zlib.adler32(f.read()) + return f'{checksum:08x}' + +if __name__ == '__main__': + if len(sys.argv) < 2: + print(f"Usage: {sys.argv[0]} <file1> [file2] [file3] ...") + sys.exit(1) + + for filename in sys.argv[1:]: + try: + print(adler32(filename)) + except IOError as e: + print(f"Error: Could not read file '{filename}' - {e}") + sys.exit(1) diff --git a/client/make-updates.sh b/client/make-updates.sh index dba3bde..0991e3e 100755 --- a/client/make-updates.sh +++ b/client/make-updates.sh @@ -7,7 +7,6 @@ dir=`pwd` UPDATE_DIR=${UPDATE_DIR:=~/www/updates} cdata=../../client-data UPDATE_HTTP=${UPDATE_HTTP:="http://updates.themanaworld.org/updates"} -CC=${CC:=gcc} function check_update() { test_command=` \ @@ -40,10 +39,6 @@ trap finish EXIT echo -e "\e[105m======= Legacy =======\e[0m" -echo -e "\e[96m>> Building adler32...\e[0m" -rm -f adler32 2>/dev/null || : -$CC adler32.c -lz -o adler32 - echo -e "\e[96m>> Creating directory tree...\e[0m" mkdir -pv files mkdir -pv $UPDATE_DIR @@ -76,9 +71,9 @@ touch $dir/files/TMW-mods.zip echo -e "\e[96m>> Calculating adler32 checksum...\e[0m" pushd $dir/files &>/dev/null -sum=`../adler32 1 TMW.zip` -musicsum=`../adler32 1 TMW-music.zip` -modsum=`../adler32 1 TMW-mods.zip` +sum=`../adler32.py TMW.zip` +musicsum=`../adler32.py TMW-music.zip` +modsum=`../adler32.py TMW-mods.zip` echo -e "\e[96m>> Generating xml file...\e[0m" echo "<?xml version=\"1.0\"?><updates>" >resources.xml |