mirror of
https://github.com/pimoroni/st7735-python.git
synced 2025-01-05 22:40:25 +03:00
install.sh: sync with boilerplate.
Fix auto_venv.sh creation and path. Normalise some whitespace. Better handling for /boot/firmware/config.txt.
This commit is contained in:
47
install.sh
47
install.sh
@@ -1,11 +1,12 @@
|
||||
#!/bin/bash
|
||||
LIBRARY_NAME=`grep -m 1 name pyproject.toml | awk -F" = " '{print substr($2,2,length($2)-2)}'`
|
||||
CONFIG=/boot/config.txt
|
||||
CONFIG_FILE=config.txt
|
||||
CONFIG_DIR="/boot/firmware"
|
||||
DATESTAMP=`date "+%Y-%m-%d-%H-%M-%S"`
|
||||
CONFIG_BACKUP=false
|
||||
APT_HAS_UPDATED=false
|
||||
RESOURCES_TOP_DIR=$HOME/Pimoroni
|
||||
VENV_BASH_SNIPPET=$RESOURCES_DIR/auto_venv.sh
|
||||
VENV_BASH_SNIPPET=$RESOURCES_TOP_DIR/auto_venv.sh
|
||||
VENV_DIR=$HOME/.virtualenvs/pimoroni
|
||||
WD=`pwd`
|
||||
USAGE="./install.sh (--unstable)"
|
||||
@@ -56,10 +57,28 @@ warning() {
|
||||
echo -e "$(tput setaf 1)$1$(tput sgr0)"
|
||||
}
|
||||
|
||||
find_config() {
|
||||
if [ ! -f "$CONFIG_DIR/$CONFIG_FILE" ]; then
|
||||
CONFIG_DIR="/boot"
|
||||
if [ ! -f "$CONFIG_DIR/$CONFIG_FILE"]; then
|
||||
warning "Could not find $CONFIG_FILE!"
|
||||
exit 1
|
||||
fi
|
||||
else
|
||||
if [ -f "/boot/$CONFIG_FILE" ] && [ ! -L "/boot/$CONFIG_FILE" ]; then
|
||||
warning "Oops! It looks like /boot/$CONFIG_FILE is not a link to $CONFIG_DIR/$CONFIG_FILE"
|
||||
warning "You might want to fix this!"
|
||||
fi
|
||||
fi
|
||||
inform "Using $CONFIG_FILE in $CONFIG_DIR"
|
||||
}
|
||||
|
||||
venv_bash_snippet() {
|
||||
inform "Checking for $VENV_BASH_SNIPPET\n"
|
||||
if [ ! -f $VENV_BASH_SNIPPET ]; then
|
||||
inform "Creating $VENV_BASH_SNIPPET\n"
|
||||
cat << EOF > $VENV_BASH_SNIPPET
|
||||
# Add `source $RESOURCES_DIR/auto_venv.sh` to your ~/.bashrc to activate
|
||||
# Add "source $VENV_BASH_SNIPPET" to your ~/.bashrc to activate
|
||||
# the Pimoroni virtual environment automagically!
|
||||
VENV_DIR="$VENV_DIR"
|
||||
if [ ! -f \$VENV_DIR/bin/activate ]; then
|
||||
@@ -100,12 +119,12 @@ function do_config_backup {
|
||||
if [ ! $CONFIG_BACKUP == true ]; then
|
||||
CONFIG_BACKUP=true
|
||||
FILENAME="config.preinstall-$LIBRARY_NAME-$DATESTAMP.txt"
|
||||
inform "Backing up $CONFIG to /boot/$FILENAME\n"
|
||||
sudo cp $CONFIG /boot/$FILENAME
|
||||
inform "Backing up $CONFIG_DIR/$CONFIG_FILE to $CONFIG_DIR/$FILENAME\n"
|
||||
sudo cp $CONFIG_DIR/$CONFIG_FILE $CONFIG_DIR/$FILENAME
|
||||
mkdir -p $RESOURCES_TOP_DIR/config-backups/
|
||||
cp $CONFIG $RESOURCES_TOP_DIR/config-backups/$FILENAME
|
||||
cp $CONFIG_DIR/$CONFIG_FILE $RESOURCES_TOP_DIR/config-backups/$FILENAME
|
||||
if [ -f "$UNINSTALLER" ]; then
|
||||
echo "cp $RESOURCES_TOP_DIR/config-backups/$FILENAME $CONFIG" >> $UNINSTALLER
|
||||
echo "cp $RESOURCES_TOP_DIR/config-backups/$FILENAME $CONFIG_DIR/$CONFIG_FILE" >> $UNINSTALLER
|
||||
fi
|
||||
fi
|
||||
}
|
||||
@@ -245,10 +264,12 @@ fi
|
||||
|
||||
cd $WD
|
||||
|
||||
find_config
|
||||
|
||||
for ((i = 0; i < ${#SETUP_CMDS[@]}; i++)); do
|
||||
CMD="${SETUP_CMDS[$i]}"
|
||||
# Attempt to catch anything that touches /boot/config.txt and trigger a backup
|
||||
if [[ "$CMD" == *"raspi-config"* ]] || [[ "$CMD" == *"$CONFIG"* ]] || [[ "$CMD" == *"\$CONFIG"* ]]; then
|
||||
# Attempt to catch anything that touches config.txt and trigger a backup
|
||||
if [[ "$CMD" == *"raspi-config"* ]] || [[ "$CMD" == *"$CONFIG_DIR/$CONFIG_FILE"* ]] || [[ "$CMD" == *"\$CONFIG_DIR/\$CONFIG_FILE"* ]]; then
|
||||
do_config_backup
|
||||
fi
|
||||
eval $CMD
|
||||
@@ -258,10 +279,10 @@ for ((i = 0; i < ${#CONFIG_TXT[@]}; i++)); do
|
||||
CONFIG_LINE="${CONFIG_TXT[$i]}"
|
||||
if ! [ "$CONFIG_LINE" == "" ]; then
|
||||
do_config_backup
|
||||
inform "Adding $CONFIG_LINE to $CONFIG\n"
|
||||
sudo sed -i "s/^#$CONFIG_LINE/$CONFIG_LINE/" $CONFIG
|
||||
if ! grep -q "^$CONFIG_LINE" $CONFIG; then
|
||||
printf "$CONFIG_LINE\n" | sudo tee --append $CONFIG
|
||||
inform "Adding $CONFIG_LINE to $CONFIG_DIR/$CONFIG_FILE\n"
|
||||
sudo sed -i "s/^#$CONFIG_LINE/$CONFIG_LINE/" $CONFIG_DIR/$CONFIG_FILE
|
||||
if ! grep -q "^$CONFIG_LINE" $CONFIG_DIR/$CONFIG_FILE; then
|
||||
printf "$CONFIG_LINE\n" | sudo tee --append $CONFIG_DIR/$CONFIG_FILE
|
||||
fi
|
||||
fi
|
||||
done
|
||||
|
||||
Reference in New Issue
Block a user