| #!/bin/bash |
| OPEN_PROJECT_NAME="isort" |
| |
| if [ "$PROJECT_NAME" = "$OPEN_PROJECT_NAME" ]; then |
| return |
| fi |
| |
| if [ ! -f ".env" ]; then |
| return |
| fi |
| |
| export PROJECT_NAME=$OPEN_PROJECT_NAME |
| export PROJECT_DIR="$PWD" |
| |
| if [ ! -d ".venv" ]; then |
| if ! hash pyvenv 2>/dev/null; then |
| function pyvenv() |
| { |
| if hash pyvenv-3.7 2>/dev/null; then |
| pyvenv-3.7 $@ |
| elif hash pyvenv-3.6 2>/dev/null; then |
| pyvenv-3.6 $@ |
| elif hash pyvenv-3.5 2>/dev/null; then |
| pyvenv-3.5 $@ |
| elif hash pyvenv-3.4 2>/dev/null; then |
| pyvenv-3.4 $@ |
| else |
| python3 -m venv $@ |
| fi |
| } |
| fi |
| |
| echo "Making venv for $PROJECT_NAME" |
| pyvenv .venv |
| . .venv/bin/activate |
| python setup.py install |
| pip install -r requirements.txt |
| fi |
| |
| . .venv/bin/activate |
| |
| # Let's make sure this is a hubflow enabled repo |
| yes | git hf init >/dev/null 2>/dev/null |
| |
| # Quick directory switching |
| alias root="cd $PROJECT_DIR" |
| alias project="root; cd $PROJECT_NAME" |
| |
| # Commands |
| alias test="root; py.test test_isort.py -s" |
| alias install="_install_project" |
| alias distribute="_distribute" |
| alias leave="_leave_project" |
| |
| |
| function _distribute() |
| { |
| (root |
| rm -rf build dist __pycache__ isort.egg-info |
| python setup.py sdist upload |
| python setup.py bdist_wheel upload) |
| } |
| |
| |
| function _install_project() |
| { |
| CURRENT_DIRECTORY="$PWD" |
| root |
| sudo python setup.py install |
| cp isort_kate_plugin.py ~/.kde/share/apps/kate/pate/isort_plugin.py >/dev/null 2>/dev/null |
| cd $CURRENT_DIRECTORY |
| } |
| |
| |
| function load { |
| (root |
| python setup.py install) |
| } |
| |
| |
| function interact { |
| (load |
| ipython -c "import isort" -i) |
| } |
| |
| |
| function open { |
| (root |
| $CODE_EDITOR isort/*.py setup.py test_*.py README.md tox.ini .gitignore CHANGELOG.md setup.cfg .editorconfig .env .coveragerc .travis.yml requirements.txt) |
| } |
| |
| |
| function _leave_project() |
| { |
| export PROJECT_NAME="" |
| export PROJECT_DIR="" |
| |
| unalias root |
| unalias project |
| unalias test |
| unalias install |
| unalias distribute |
| unalias leave |
| |
| unset -f load |
| unset -f interact |
| unset -f open |
| |
| deactivate |
| } |