From 93dc69f3f37835bed9868d79982c784f91557841 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sebastian=20Dr=C3=B6ge?= Date: Tue, 18 Jun 2019 13:10:24 +0300 Subject: [PATCH] Add generator.py from gstreamer-rs-sys --- generator.py | 61 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 61 insertions(+) create mode 100755 generator.py diff --git a/generator.py b/generator.py new file mode 100755 index 000000000..49b728687 --- /dev/null +++ b/generator.py @@ -0,0 +1,61 @@ +#!/usr/bin/env python + +from os import listdir +from os.path import isfile, join +from subprocess import call +import sys + +need_rebuild = False + +def update_workspace(): + with open('Cargo.toml', 'r') as f: + old_lines = f.readlines() + lines = old_lines[:] + with open('Cargo.toml', 'w') as f: + lines.insert(len(lines) - 2, '"gir",') + f.write(''.join(lines)) + success = True + try: + call(['bash', '-c', 'cd gir && cargo build --release']) + except: + success = False + with open('Cargo.toml', 'w') as f: + f.write(''.join(old_lines)) + return success + + +if not isfile('./gir/src'): + need_rebuild = True + print('=> Initializing gir submodule...') + call(['bash', '-c', 'git submodule update --init']) + print('<= Done!') + +question = 'Do you want to update gir submodule? [y/N]' +if sys.version_info[0] < 3: + line = raw_input(question) +else: + line = input(question) +line = line.strip() +if line.lower() == 'y': + need_rebuild = True + print('=> Updating gir submodule...') + call(['bash', '-c', 'cd gir && git reset --hard HEAD && git pull -f origin master']) + print('<= Done!') + +if need_rebuild is True or not os.path.isfile('./gir/target/release/gir'): + print('=> Building gir...') + if update_workspace() is True: + print('<= Done!') + else: + print('<= Failed...') + sys.exit(1) + +print('=> Regenerating crates...') +for entry in [f for f in listdir('.') if isfile(join('.', f))]: + if entry.startswith('Gir_Gst') and entry.endswith('.toml'): + print('==> Regenerating "{}"...'.format(entry)) + call(['./target/release/gir', '-c', entry]) + print('<== Done!') +call(['cargo', 'fmt']) +print('<= Done!') +print("Don't forget to check if everything has been correctly generated!")