diff --git a/src/WebSocketsVersion.h b/src/WebSocketsVersion.h index 2d8968b..9a05e69 100644 --- a/src/WebSocketsVersion.h +++ b/src/WebSocketsVersion.h @@ -2,7 +2,7 @@ * @file WebSocketsVersion.h * @date 07.01.2021 * @author Markus Sattler - * + * * Copyright (c) 2015 Markus Sattler. All rights reserved. * This file is part of the WebSockets for Arduino. * diff --git a/travis/version.py b/travis/version.py index dd2ec26..71454ab 100755 --- a/travis/version.py +++ b/travis/version.py @@ -5,10 +5,57 @@ import configparser import argparse import re import os +import datetime travis_dir = os.path.dirname(os.path.abspath(__file__)) base_dir = os.path.abspath(travis_dir + "/../") +def write_header_file(version): + hvs = version.split('.') + intversion = int(hvs[0]) * 1000000 + int(hvs[1]) * 1000 + int(hvs[2]) + now = datetime.datetime.now() + + text = f'''/** + * @file WebSocketsVersion.h + * @date {now.strftime("%d.%m.%Y")} + * @author Markus Sattler + * + * Copyright (c) 2015 Markus Sattler. All rights reserved. + * This file is part of the WebSockets for Arduino. + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library 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 + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + * + */ + +#ifndef WEBSOCKETSVERSION_H_ +#define WEBSOCKETSVERSION_H_ + +#define WEBSOCKETS_VERSION "{version}" + +#define WEBSOCKETS_VERSION_MAJOR {hvs[0]} +#define WEBSOCKETS_VERSION_MINOR {hvs[1]} +#define WEBSOCKETS_VERSION_PATCH {hvs[2]} + +#define WEBSOCKETS_VERSION_INT {intversion} + +#endif /* WEBSOCKETSVERSION_H_ */ +''' + with open(f'{base_dir}/src/WebSocketsVersion.h', 'w') as f: + f.write(text) + + def get_library_properties_version(): library_properties = {} with open(f'{base_dir}/library.properties', 'r') as f: @@ -16,12 +63,14 @@ def get_library_properties_version(): library_properties.read_string('[root]\n' + f.read()) return library_properties['root']['version'] + def get_library_json_version(): library_json = {} with open(f'{base_dir}/library.json', 'r') as f: library_json = json.load(f) return library_json['version'] + def get_header_versions(): data = {} define = re.compile('^#define WEBSOCKETS_VERSION_?(.*) "?([0-9\.]*)"?$') @@ -31,8 +80,8 @@ def get_header_versions(): if m: name = m[1] if name == "": - name = "VERSION" - data[name] = m[2] + name = "VERSION" + data[name] = m[2] return data @@ -46,7 +95,7 @@ args = parser.parse_args() if args.update: library_properties_version = get_library_properties_version() - + with open(f'{base_dir}/library.json', 'r') as f: library_json = json.load(f) @@ -55,6 +104,8 @@ if args.update: with open(f'{base_dir}/library.json', 'w') as f: json.dump(library_json, f, indent=4, sort_keys=True) + write_header_file(library_properties_version) + library_json_version = get_library_json_version() library_properties_version = get_library_properties_version() @@ -76,6 +127,6 @@ if args.check: if header_version['PATCH'] != hvs[2]: raise Exception('header PATCH version wrong!') - intversion = int(hvs[0]) * 1000000 + int(hvs[1]) * 1000 + int(hvs[2]) + intversion = int(hvs[0]) * 1000000 + int(hvs[1]) * 1000 + int(hvs[2]) if int(header_version['INT']) != intversion: - raise Exception('header INT version wrong!') \ No newline at end of file + raise Exception('header INT version wrong!')