Skip to content

Commit

Permalink
version.py can now create WebSocketsVersion.h
Browse files Browse the repository at this point in the history
  • Loading branch information
Links2004 committed Jan 7, 2021
1 parent 39e6a8e commit ec22d67
Show file tree
Hide file tree
Showing 2 changed files with 57 additions and 6 deletions.
2 changes: 1 addition & 1 deletion src/WebSocketsVersion.h
Expand Up @@ -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.
*
Expand Down
61 changes: 56 additions & 5 deletions travis/version.py
Expand Up @@ -5,23 +5,72 @@
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:
library_properties = configparser.ConfigParser()
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\.]*)"?$')
Expand All @@ -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


Expand All @@ -46,7 +95,7 @@ def get_header_versions():

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)

Expand All @@ -55,6 +104,8 @@ def get_header_versions():
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()
Expand All @@ -76,6 +127,6 @@ def get_header_versions():
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!')
raise Exception('header INT version wrong!')

0 comments on commit ec22d67

Please sign in to comment.