mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer-rs.git
synced 2024-11-05 17:19:42 +00:00
25142fc3b5
It is easy to forget to add the final comma in the last item in the workspace member list, thus the current heuristic breaks the Cargo.toml parsing. Instead of trying to append the gir item, it is inserted at position end-2, avoiding the previous described situation.
60 lines
1.8 KiB
Python
Executable file
60 lines
1.8 KiB
Python
Executable file
#!/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() == 'n' or len(line) == 0:
|
|
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!')
|
|
print('<= Done!')
|
|
print("Don't forget to check if everything has been correctly generated!")
|