exactness_record: introduce runner script

this is just a little python script, so you can lunch exactness_record
without the need of handdefining LD_PRELOAD

Reviewed-by: Stefan Schmidt <stefan@datenfreihafen.org>
Differential Revision: https://phab.enlightenment.org/D11611
This commit is contained in:
Marcel Hollerbach 2020-03-27 11:25:22 +01:00 committed by Stefan Schmidt
parent 7891e8582b
commit 506b354842
2 changed files with 72 additions and 1 deletions

View File

@ -0,0 +1,61 @@
#!/usr/bin/env python3
import argparse
import subprocess
import os
parser = argparse.ArgumentParser(description='A scenario recorder for EFL based applications.'
'\tF1 - Request stabilization\n'
'\tF2 - Request shot\n'
'\tF3 - Request to save the scenario\n')
parser.add_argument('app', metavar='app', help='The app to run. You can also pass environment variables here.', type=str, nargs='*')
parser.add_argument('-t', '--tests', metavar='tests', help='Name of the filename where to store the test.', type=str)
parser.add_argument('-f', '--fontsdir', metavar='fontsdir', help='Specify a directory of the fonts that should be used.', type=str)
parser.add_argument('-L', '--license', help='the path where to find the meson build directory', action='store_true')
parser.add_argument('-C', '--copyright', help='the path where to find the meson build directory', action='store_true')
parser.add_argument('-V', '--version', help='the path where to find the meson build directory', action='store_true')
G = parser.parse_args()
if G.license:
print("BSD.")
exit(0)
if G.copyright:
print("(C) 2017 Enlightenment.")
exit(0)
if G.version:
print(@VERSION@)
exit(0)
spawn_env = os.environ.copy()
spawn_env["LD_PRELOAD"] = @EXACTNESS_RECORD_PRELOAD_PATH@
if G.tests != None:
spawn_env["EXACTNESS_DEST"] = G.tests
else:
print("Tests dir must be passed!")
exit(-1)
if G.fontsdir != None:
spawn_env["EXACTNESS_FONTS_DIR"] = G.fontsdir
passed_all_the_env_vars = False
app = []
for argument in G.app:
if '=' not in argument:
passed_all_the_env_vars = True
else:
if passed_all_the_env_vars:
print("Error, env vars can only be specified at the beginning of the app call line")
exit(-1)
split_env_var = argument.split('=')
spawn_env[split_env_var[0]] = split_env_var[1]
if passed_all_the_env_vars:
app.append(argument)
recorder = subprocess.Popen(app, env=spawn_env)
recorder.wait()

View File

@ -42,5 +42,15 @@ exactness_record_bin = library('exactness_record',
dependencies: [ elementary ],
c_args: '-DDATA_DIR="'+join_paths(dir_data, 'exactness')+'"',
install: true,
)
)
exactness_env = configuration_data()
exactness_env.set_quoted('EXACTNESS_RECORD_PRELOAD_PATH', exactness_record_bin.full_path())
exactness_env.set_quoted('VERSION', meson.project_version())
configure_file(
input: 'exactness_record.in',
output: 'exactness_record',
configuration: exactness_env,
install_dir: get_option('bindir'),
install_mode: 'rwxr-xr-x')