summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThorbjørn Lindeijer <bjorn@lindeijer.nl>2025-02-12 09:39:28 +0100
committerThorbjørn Lindeijer <bjorn@lindeijer.nl>2025-02-12 11:44:56 +0100
commit95311dc4a083b8b12529f3617d2feae8fa5eb684 (patch)
treec64a04d53ff2a0e65d8ceb93d80a035f73d46900
parent63807cbe838a32cb6805f0a8ee5efe1548513a83 (diff)
downloadtools-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--.gitignore1
-rw-r--r--client/adler32.c79
-rwxr-xr-xclient/adler32.py20
-rwxr-xr-xclient/make-updates.sh11
4 files changed, 23 insertions, 88 deletions
diff --git a/.gitignore b/.gitignore
index 4c5843f..b30a657 100644
--- a/.gitignore
+++ b/.gitignore
@@ -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