diff --git a/make/py-run.mk b/make/py-run.mk new file mode 100644 index 00000000..d8c40ae4 --- /dev/null +++ b/make/py-run.mk @@ -0,0 +1,24 @@ +include $(JWBDIR)/make/defs.mk +include $(JWBDIR)/make/py-defs.mk +#include $(JWBDIR)/make/scripts-targets.mk +#include $(JWBDIR)/make/rules.mk + +EXE ?= $(firstword $(wildcard main.py runme.py test.py *.py)) +EXE_ARGS ?= + +all: +install: +clean: +distclean: +test: + +run: + $(PYTHON) $(EXE) $(EXE_ARGS) + +run.sh: + echo -e "#!/bin/bash\n\nexport PYTHONPATH=$(PYTHONPATH)\nset -x\nexec $(PYTHON) $(EXE)" '"$$@"' > $@.tmp + chmod 755 $@.tmp + mv $@.tmp $@ +clean-run-sh: + rm -f run.sh +clean: clean-run-sh diff --git a/scripts/python-tools.sh b/scripts/python-tools.sh new file mode 100644 index 00000000..543571fe --- /dev/null +++ b/scripts/python-tools.sh @@ -0,0 +1,81 @@ +#!/bin/bash + +usage() +{ + cat <<-EOT + + usage $myname [-e sed-extract-command] [-m module] file.py ... + + EOT + [ "$1" ] && exit $1 +} + +module_path() +{ + if [ "$module" ]; then + echo $module.$1 + return + fi + echo $1 +} + +cmd_create_init() +{ + local import_submodules=0 + local e f files base extracted module_path + local del="-------------------------- generated by $myname" + echo "# >> $del >>" + echo "from pkgutil import extend_path" + echo "from typing import Iterable" + echo "__path__ = extend_path(__path__, __name__) # type: ignore" # was "type Iterable[str]" + files="$*" + for f in $files; do + test -d $f && continue + base=${f##*/} + base=${base%.py} + if [ "$sed_extract_command" ]; then + #echo running $sed_extract_command on $f + extracted=`sed "$sed_extract_command" $f` + #extracted="$sed_extract_command" + for e in $extracted; do + echo "from `module_path $base` import $e" + done + fi + done + if [ "$import_submodules" = 1 ]; then + for f in $files; do + [ -f $f/__init__.py ] && echo "import `module_path $f` as $f" + done + fi + echo "# << $del <<" +} + +# --------------------- here we go + +myname=`basename $0` + +eval set -- `getopt -o 'he:m:' "$@"` +while [ "$1" != -- ]; do +case $1 in + -e) + sed_extract_command="$2" + shift + ;; + -m) + module=$2 + shift + ;; + -h) + usage 0;; + *) + echo unknown argument $1 + usage 1;; +esac +shift +done +shift + +cmd=cmd_${1//-/_} +shift + +eval $cmd $*