summaryrefslogtreecommitdiff
path: root/hercules_update
diff options
context:
space:
mode:
authorAndrei Karas <akaras@inbox.ru>2014-10-05 00:31:42 +0300
committerAndrei Karas <akaras@inbox.ru>2014-10-05 00:31:42 +0300
commit4dbda2f85acfbccc7cb4c0f4c4eb6d52f94fd1b2 (patch)
treebb01ae1e65b15038eb3848d8ce6a68cea26a0ee4 /hercules_update
parent425e121eeacc94057a7620db6f0030c4e9e49f3d (diff)
downloadevol-tools-4dbda2f85acfbccc7cb4c0f4c4eb6d52f94fd1b2.tar.gz
evol-tools-4dbda2f85acfbccc7cb4c0f4c4eb6d52f94fd1b2.tar.bz2
evol-tools-4dbda2f85acfbccc7cb4c0f4c4eb6d52f94fd1b2.tar.xz
evol-tools-4dbda2f85acfbccc7cb4c0f4c4eb6d52f94fd1b2.zip
Add script for hercules updates generation.
Diffstat (limited to 'hercules_update')
-rw-r--r--hercules_update/adler32.c79
-rwxr-xr-xhercules_update/createnew.sh34
-rw-r--r--hercules_update/news.txt6
3 files changed, 119 insertions, 0 deletions
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 <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/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 version="1.0"?>
+<updates>' >xml_header.txt
+echo '</updates>' >xml_footer.txt
+
+echo " <update type=\"data\" file=\"hercules.zip\" hash=\"${sum}\" />" >> 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.