scripts/bash/steamos-venv-pre-commit.bash

37 lines
1.1 KiB
Bash
Raw Normal View History

#!/usr/bin/env bash
# This is a noteish on how to pre-commit on SteamOS. Or it was, but then I
# decided that pipx is a thing that I could put into the venv more reasonably
# and feel less bad about abusing it O:)
set -x
cd ~
mkdir -p ~/.local/bin/
# My pre-commit configuration expects to find a pypy
if ! hash pypy 2>/dev/null; then
ln -sf /usr/bin/python ~/.local/bin/pypy
fi
if ! hash pypy3 2>/dev/null; then
ln -sf /usr/bin/python3 ~/.local/bin/pypy3
fi
mkdir -p ~/venv
python3 -m venv ~/venv
. ~/venv/bin/activate
python3 -m pip install pip --upgrade
python3 -m pip install pipx --upgrade
python3 -m pipx install pre-commit
python3 -m pipx upgrade-all
# As this script claims to be pre-commit on SteamOS, let's do it properly all
# the way!
mkdir -p ~/.git-template
git config --global init.templatedir ~/.git-template
pre-commit init-templatedir ~/.git-template
# Removes duplicates from $PATH. Copied from https://unix.stackexchange.com/a/14896
PATH=$(echo "$PATH" | awk -v RS=':' -v ORS=":" '!a[$1]++{if (NR > 1) printf ORS; printf $a[$1]}')
printf "Remember to apply the following somewhere appropiate:\nPATH=$PATH"
set +x