fix libre-soc-install.sh running outside of a venv
authorJacob Lifshay <programmerjake@gmail.com>
Tue, 27 Jul 2021 22:16:45 +0000 (15:16 -0700)
committerJacob Lifshay <programmerjake@gmail.com>
Tue, 27 Jul 2021 22:16:45 +0000 (15:16 -0700)
libre-soc-install.sh

index 24ccf4799da27a1be16ca6a872988889a2f4e6d1..28ab21d9889fba255eb343b2ed62adb678f0ee22 100755 (executable)
@@ -7,12 +7,22 @@ function fail()
     exit 1
 }
 
+if [[ "$VIRTUAL_ENV" == "" ]]; then
+    user=( "--user" )
+else
+    user=()
+fi
 cargo_version="$(cargo --version)" || fail "can't find cargo, install it from https://rustup.rs/"
 [[ "$cargo_version" =~ ^'cargo 1.'([0-9]+)'.'[0-9]+' ' ]] || fail "can't parse cargo's version string"
 (( "${BASH_REMATCH[1]}" >= 53 )) || fail 'your rust version is not recent enough, update your rust version using `rustup update`'
-python3 -m pip install 'maturin>=0.11,<0.12'
-scripts="$(python3 -m sysconfig | sed 's/^\tscripts = "\([^"]\+\)"$/\1/p; d')"
+python3 -m pip install "${user[@]}" 'maturin>=0.11,<0.12'
+if [[ "$VIRTUAL_ENV" == "" ]]; then
+    scripts="$(python3 -m sysconfig | sed 's@^\tuserbase = "\([^"]\+\)"$@\1/bin@p; d')"
+else
+    scripts="$(python3 -m sysconfig | sed 's/^\tscripts = "\([^"]\+\)"$/\1/p; d')"
+fi
+echo "$scripts"
 [[ -d "$scripts" ]] || fail "can't find python's \`scripts\` directory"
 rm -f target/wheels/power_instruction_analyzer-*.whl
 "$scripts"/maturin build --compatibility linux --cargo-extra-args=--features=python-extension -i python3 --release --no-sdist
-python3 -m pip install target/wheels/power_instruction_analyzer-*.whl
\ No newline at end of file
+python3 -m pip install --force "${user[@]}" target/wheels/power_instruction_analyzer-*.whl
\ No newline at end of file