В проекте django вы получаете скрипт с именем manage.py
, в котором есть несколько подкоманд, таких как runserver
, migrate
и т.д. Вы можете получить их список, запустив скрипт без аргументов.
Мой план состоит в том, чтобы проанализировать этот вывод и использовать его для включения завершения TAB после . manage.py
, а также настроить псевдонимы, так что я могу просто набрать migr[TAB]
вместо ./manage.py migrate
.
Моя проблема в том, что, поскольку это Python, и он должен загружаться во все механизмы django, чтобы показать подкоманды, я каждый раз жду около половины секунды в действительно маленьком проекте. Чем больше проект, тем больше времени занимает.
Моя идея состояла в том, чтобы запустить опрос сценария, определение псевдонимов и настройку автозаполнения в фоновом режиме а-ля
(for subcommand in parse_manage_py; do alias $subcommand='./manage.py $subcommand'; done) &
Но это не устанавливает никаких переменных в родительской оболочке. Я некоторое время разбирался с export
, прежде чем понял, что экспорт идет "вниз", а не "вверх".