From 4dbda2f85acfbccc7cb4c0f4c4eb6d52f94fd1b2 Mon Sep 17 00:00:00 2001 From: Andrei Karas Date: Sun, 5 Oct 2014 00:31:42 +0300 Subject: Add script for hercules updates generation. --- hercules_update/adler32.c | 79 ++++++++++++++++++++++++++++++++++++++++++++ hercules_update/createnew.sh | 34 +++++++++++++++++++ hercules_update/news.txt | 6 ++++ 3 files changed, 119 insertions(+) create mode 100644 hercules_update/adler32.c create mode 100755 hercules_update/createnew.sh create mode 100644 hercules_update/news.txt (limited to 'hercules_update') diff --git a/hercules_update/adler32.c b/hercules_update/adler32.c new file mode 100644 index 0000000..606c739 --- /dev/null +++ b/hercules_update/adler32.c @@ -0,0 +1,79 @@ +/* + * 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 +#include +#include + +/** + * 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/hercules_update/createnew.sh b/hercules_update/createnew.sh new file mode 100755 index 0000000..692cc05 --- /dev/null +++ b/hercules_update/createnew.sh @@ -0,0 +1,34 @@ +#!/bin/bash + +# Copyright (C) 2011-2014 Evol Online +# Author: Andrei Karas (4144) + +dir=`pwd` + +rm adler32 +gcc -lz adler32.c -o adler32 + +mkdir files +mkdir upload + +rm files/hercules.zip +cd ../../herculesclientdata +find -iregex ".+[.]\(xml\|png\|tmx\|ogg\|txt\|po\|tsx\)" -printf "%P\n" | zip -@ ../privtools/hercules_update/files/hercules.zip +git log --pretty=oneline -n 1 | awk '{print $1}' >../privtools/update/commit.txt + +cd $dir/files +sum=`../adler32 1 hercules.zip` +echo "evol.zip ${sum}" >resources2.txt + +echo ' +' >xml_header.txt +echo '' >xml_footer.txt + +echo " " >> xml_header.txt +cp xml_header.txt resources.xml +cat xml_footer.txt >>resources.xml + +cp hercules.zip ../upload/ +cp resources2.txt ../upload/ +cp resources.xml ../upload/ +cp ../news.txt ../upload/ diff --git a/hercules_update/news.txt b/hercules_update/news.txt new file mode 100644 index 0000000..7ab9f87 --- /dev/null +++ b/hercules_update/news.txt @@ -0,0 +1,6 @@ +##0 Welcome to ##BHercules test server##b! + +##0 This server is only technical preview. +##0 In server present data from RO. +##0 For client art and data was used evol art and auto generated xml files +##0 Some features may not work. -- cgit v1.2.3-60-g2f50