#!/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 python setup.py bdist_wheel twine upload --repository-url https://test.pypi.org/legacy/ dist/*) } 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 }