From 5c425849314649cd7afd331e9e75dbfac39197bf Mon Sep 17 00:00:00 2001 From: olli Date: Thu, 28 Mar 2024 17:54:10 +0100 Subject: [PATCH] cleanup --- gaboshlib/g_python.sh | 36 +++++++++++++++++++----------------- 1 file changed, 19 insertions(+), 17 deletions(-) diff --git a/gaboshlib/g_python.sh b/gaboshlib/g_python.sh index 6e200fb..a83e5d5 100644 --- a/gaboshlib/g_python.sh +++ b/gaboshlib/g_python.sh @@ -1,44 +1,46 @@ function g_python { - g_rnd=$$ - + local g_python_tmp=${g_tmp}/$$ + g_python_out=${g_python_tmp}/python-out + local g_python_in=${g_python_tmp}/python-in + local g_python_error=${g_python_tmp}/python-error local g_python_jobs mapfile -t g_python_jobs < <(jobs -r) + # Use python in backround for multiple python commands running much faster #if [ -z "${g_python_running}" ] if [[ ${g_python_jobs[*]} != *python-pipeexec.py* ]] then - mkdir -p ${g_tmp}/${g_rnd} - if [ -s ${g_tmp}/${g_rnd}/python-error ] + mkdir -p ${g_python_tmp} + if [ -s ${g_python_error} ] then - g_echo_error "From last python run: $(cat ${g_tmp}/${g_rnd}/python-error)" + g_echo_error "From last python run: $(cat ${g_python_error})" fi - [ -p ${g_tmp}/${g_rnd}/python-in ] || mkfifo ${g_tmp}/${g_rnd}/python-in - #[ -p ${g_tmp}/${g_rnd}/python-out ] || mkfifo ${g_tmp}/${g_rnd}/python-out + [ -p ${g_python_in} ] || mkfifo ${g_python_in} echo "while 1: - exec(open(\"${g_tmp}/${g_rnd}/python-in\").read()) + exec(open(\"${g_python_in}\").read()) print('DONE') -" >${g_tmp}/${g_rnd}/python-pipeexec.py +" >${g_python_tmp}/python-pipeexec.py # python stream channel - { python3 -u ${g_tmp}/${g_rnd}/python-pipeexec.py >>${g_tmp}/${g_rnd}/python-out 2>>${g_tmp}/${g_rnd}/python-error & } + { python3 -u ${g_python_tmp}/python-pipeexec.py >>${g_python_out} 2>>${g_python_error} & } g_python_running="true" fi # do python - >${g_tmp}/${g_rnd}/python-out - >${g_tmp}/${g_rnd}/python-error - echo $@ >${g_tmp}/${g_rnd}/python-in + >${g_python_out} + >${g_python_error} + echo $@ >${g_python_in} while true do # Check for output - if [ -s ${g_tmp}/${g_rnd}/python-out ] + if [ -s ${g_python_out} ] then unset g_python_result - mapfile -t g_python_result <${g_tmp}/${g_rnd}/python-out + mapfile -t g_python_result <${g_python_out} if [[ ${g_python_result[-1]} == DONE ]] then # remove the DONE output (last array element @@ -49,10 +51,10 @@ function g_python { # Check for error mapfile -t g_python_jobs < <(jobs -r) - if [ -s "${g_tmp}/${g_rnd}/python-error" ] || [[ ${g_python_jobs[*]} != *python-pipeexec.py* ]] + if [ -s "${g_python_error}" ] || [[ ${g_python_jobs[*]} != *python-pipeexec.py* ]] then g_echo_error "Python Progress not running: -$(cat ${g_tmp}/${g_rnd}/python-error)" +$(cat ${g_python_error})" return 1 fi