aboutsummaryrefslogtreecommitdiff
path: root/install.sh
diff options
context:
space:
mode:
Diffstat (limited to 'install.sh')
-rwxr-xr-xinstall.sh70
1 files changed, 38 insertions, 32 deletions
diff --git a/install.sh b/install.sh
index f140997..11b5ec8 100755
--- a/install.sh
+++ b/install.sh
@@ -7,34 +7,40 @@ symlink () {
}
install_python_venv() {
- LONG=$1
- SHORT=${LONG//\./}
-
- PYTHON_BIN=$(command -v "python$LONG" || true)
- if [ -n "$PYTHON_BIN" ]; then
-
- PYTHON_DIR=~/opt/python$SHORT
- PIP_BIN=$PYTHON_DIR/bin/pip$LONG
- REQUIREMENTS=~/.dotfiles/python/requirements.pip$SHORT.txt
- LOCAL_PYTHON_BIN=~/bin/python$LONG
- LOCAL_PIP_BIN=~/bin/pip$LONG
- LOCAL_DOIT_BIN=~/bin/doit$LONG
-
- [ ! -d $PYTHON_DIR ] && \
- $PYTHON_BIN -m venv --system-site-packages $PYTHON_DIR
-
- $PIP_BIN -q install -U -r $REQUIREMENTS
-
- echo "#!/bin/sh" > $LOCAL_PYTHON_BIN
- echo "exec $(cd $PYTHON_DIR; pwd)/bin/python$LONG \"\$@\"" >> $LOCAL_PYTHON_BIN
- chmod +x $LOCAL_PYTHON_BIN
-
- symlink $PIP_BIN $LOCAL_PIP_BIN
- symlink $PYTHON_DIR/bin/doit $LOCAL_DOIT_BIN
-
- symlink ~/bin/python$LONG ~/bin/python3
-
- fi
+ PYTHON_CMD=$(command -v "$1" || true)
+ [ -z "$PYTHON_CMD" ] && return 0;
+
+ PYTHON=$PYTHON_CMD
+ PYTHON=${PYTHON%%[0-9]*}
+ PYTHON=${PYTHON##*/}
+ MAJOR=$($PYTHON_CMD -c "import sys; print(sys.version_info.major)")
+ MINOR=$($PYTHON_CMD -c "import sys; print(sys.version_info.minor)")
+ REQUIREMENTS=~/.dotfiles/python/requirements.pip$MAJOR$MINOR.txt
+
+ VENV_DIR=$(cd ~/opt; pwd)/$PYTHON$MAJOR$MINOR
+ VENV_PYTHON=$VENV_DIR/bin/$PYTHON
+ VENV_PIP=$VENV_DIR/bin/pip
+ VENV_DOIT=$VENV_DIR/bin/doit
+
+ BIN_DIR=$(cd ~/bin; pwd)
+ BIN_PYTHON=$BIN_DIR/$PYTHON$MAJOR.$MINOR
+ BIN_PIP=$BIN_DIR/pip-$PYTHON$MAJOR.$MINOR
+ BIN_DOIT=$BIN_DIR/doit-$PYTHON$MAJOR.$MINOR
+
+ $PYTHON_CMD -m venv --system-site-packages $VENV_DIR
+ $VENV_PIP -q install -U -r $REQUIREMENTS
+
+ echo -e "#!/bin/sh\\nexec $VENV_PYTHON \"\$@\"" > $BIN_PYTHON
+ chmod +x $BIN_PYTHON
+ symlink $BIN_PYTHON $BIN_DIR/$PYTHON$MAJOR
+ symlink $BIN_DIR/$PYTHON$MAJOR $BIN_DIR/$PYTHON
+
+ symlink $VENV_PIP $BIN_PIP
+ symlink $BIN_PIP $BIN_DIR/pip$MAJOR
+ symlink $BIN_DIR/pip$MAJOR $BIN_DIR/pip
+
+ symlink $VENV_DOIT $BIN_DOIT
+ symlink $BIN_DOIT $BIN_DIR/doit
}
mkdir -p ~/bin
@@ -100,10 +106,10 @@ symlink ~/.dotfiles/pictures ~/.pictures
symlink ~/.dotfiles/polybar ~/.config/polybar
# python
-install_python_venv 3.8
-install_python_venv 3.9
-install_python_venv 3.10
-symlink ~/bin/python3 ~/bin/python
+install_python_venv pypy3
+install_python_venv python3.8
+install_python_venv python3.9
+install_python_venv python3.10
# qutebrowser
mkdir -p ~/.config/qutebrowser