#!/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 "__path__ = extend_path(__path__, __name__)" 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 $*