1*27162e4eSAndroid Build Coastguard Worker#!/usr/bin/env python3 2*27162e4eSAndroid Build Coastguard Worker# ############################################################################# 3*27162e4eSAndroid Build Coastguard Worker# Copyright (c) 2018-present lzutao <taolzu(at)gmail.com> 4*27162e4eSAndroid Build Coastguard Worker# All rights reserved. 5*27162e4eSAndroid Build Coastguard Worker# 6*27162e4eSAndroid Build Coastguard Worker# This source code is licensed under both the BSD-style license (found in the 7*27162e4eSAndroid Build Coastguard Worker# LICENSE file in the root directory of this source tree) and the GPLv2 (found 8*27162e4eSAndroid Build Coastguard Worker# in the COPYING file in the root directory of this source tree). 9*27162e4eSAndroid Build Coastguard Worker# ############################################################################# 10*27162e4eSAndroid Build Coastguard Workerimport re 11*27162e4eSAndroid Build Coastguard Worker 12*27162e4eSAndroid Build Coastguard Worker 13*27162e4eSAndroid Build Coastguard Workerdef find_version_tuple(filepath): 14*27162e4eSAndroid Build Coastguard Worker version_file_data = None 15*27162e4eSAndroid Build Coastguard Worker with open(filepath) as fd: 16*27162e4eSAndroid Build Coastguard Worker version_file_data = fd.read() 17*27162e4eSAndroid Build Coastguard Worker 18*27162e4eSAndroid Build Coastguard Worker patterns = r"""\s*#\s*define\s+LZ4_VERSION_MAJOR\s+([0-9]+).*$ 19*27162e4eSAndroid Build Coastguard Worker\s*#\s*define\s+LZ4_VERSION_MINOR\s+([0-9]+).*$ 20*27162e4eSAndroid Build Coastguard Worker\s*#\s*define\s+LZ4_VERSION_RELEASE\s+([0-9]+).*$ 21*27162e4eSAndroid Build Coastguard Worker""" 22*27162e4eSAndroid Build Coastguard Worker regex = re.compile(patterns, re.MULTILINE) 23*27162e4eSAndroid Build Coastguard Worker version_match = regex.search(version_file_data) 24*27162e4eSAndroid Build Coastguard Worker if version_match: 25*27162e4eSAndroid Build Coastguard Worker return version_match.groups() 26*27162e4eSAndroid Build Coastguard Worker raise Exception("Unable to find version string.") 27*27162e4eSAndroid Build Coastguard Worker 28*27162e4eSAndroid Build Coastguard Worker 29*27162e4eSAndroid Build Coastguard Workerdef main(): 30*27162e4eSAndroid Build Coastguard Worker import argparse 31*27162e4eSAndroid Build Coastguard Worker parser = argparse.ArgumentParser(description='Print lz4 version from lib/lz4.h') 32*27162e4eSAndroid Build Coastguard Worker parser.add_argument('file', help='path to lib/lz4.h') 33*27162e4eSAndroid Build Coastguard Worker args = parser.parse_args() 34*27162e4eSAndroid Build Coastguard Worker version_tuple = find_version_tuple(args.file) 35*27162e4eSAndroid Build Coastguard Worker print('.'.join(version_tuple)) 36*27162e4eSAndroid Build Coastguard Worker 37*27162e4eSAndroid Build Coastguard Worker 38*27162e4eSAndroid Build Coastguard Workerif __name__ == '__main__': 39*27162e4eSAndroid Build Coastguard Worker main() 40