Skip to content

Commit 11c2188

Browse files
committed
Fix for config.txt location.
1 parent f6ee18b commit 11c2188

File tree

3 files changed

+48
-32
lines changed

3 files changed

+48
-32
lines changed

check.sh

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ NOPOST=$1
66
LIBRARY_NAME=`hatch project metadata name`
77
LIBRARY_VERSION=`hatch version | awk -F "." '{print $1"."$2"."$3}'`
88
POST_VERSION=`hatch version | awk -F "." '{print substr($4,0,length($4))}'`
9+
TERM=${TERM:="xterm-256color"}
910

1011
success() {
1112
echo -e "$(tput setaf 2)$1$(tput sgr0)"

install.sh

Lines changed: 42 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,21 @@
11
#!/bin/bash
22
LIBRARY_NAME=`grep -m 1 name pyproject.toml | awk -F" = " '{print substr($2,2,length($2)-2)}'`
3-
CONFIG=/boot/config.txt
3+
CONFIG_FILE=config.txt
4+
CONFIG_DIR="/boot/firmware"
45
DATESTAMP=`date "+%Y-%m-%d-%H-%M-%S"`
56
CONFIG_BACKUP=false
67
APT_HAS_UPDATED=false
78
RESOURCES_TOP_DIR=$HOME/Pimoroni
8-
VENV_BASH_SNIPPET=$RESOURCES_TOP_DIR/auto_venv.sh
9-
VENV_DIR=$RESOURCES_TOP_DIR/venv
9+
VENV_BASH_SNIPPET=$RESOURCES_DIR/auto_venv.sh
10+
VENV_DIR=$HOME/.virtualenvs/pimoroni
1011
WD=`pwd`
1112
USAGE="./install.sh (--unstable)"
1213
POSITIONAL_ARGS=()
1314
FORCE=false
1415
UNSTABLE=false
1516
PYTHON="python"
1617

18+
1719
user_check() {
1820
if [ $(id -u) -eq 0 ]; then
1921
printf "Script should not be run as root. Try './install.sh'\n"
@@ -55,19 +57,35 @@ warning() {
5557
echo -e "$(tput setaf 1)$1$(tput sgr0)"
5658
}
5759

60+
find_config() {
61+
if [ ! -f "$CONFIG_DIR/$CONFIG_FILE" ]; then
62+
CONFIG_DIR="/boot"
63+
if [ ! -f "$CONFIG_DIR/$CONFIG_FILE"]; then
64+
warning "Could not find $CONFIG_FILE!"
65+
exit 1
66+
fi
67+
else
68+
if [ -f "/boot/$CONFIG_FILE" ] && [ ! -L "/boot/$CONFIG_FILE" ]; then
69+
warning "Oops! It looks like /boot/$CONFIG_FILE is not a link to $CONFIG_DIR/$CONFIG_FILE"
70+
warning "You might want to fix this!"
71+
fi
72+
fi
73+
inform "Using $CONFIG_FILE in $CONFIG_DIR"
74+
}
75+
5876
venv_bash_snippet() {
5977
if [ ! -f $VENV_BASH_SNIPPET ]; then
6078
cat << EOF > $VENV_BASH_SNIPPET
61-
# Add \`source $RESOURCES_TOP_DIR/auto_venv.sh\` to your ~/.bashrc to activate
79+
# Add `source $RESOURCES_DIR/auto_venv.sh` to your ~/.bashrc to activate
6280
# the Pimoroni virtual environment automagically!
63-
PY_ENV_DIR=~/Pimoroni/venv
64-
if [ ! -f \$PY_ENV_DIR/bin/activate ]; then
65-
printf "Creating user Python environment in \$PY_ENV_DIR, please wait...\n"
66-
mkdir -p \$PY_ENV_DIR
67-
python3 -m venv --system-site-packages --prompt Pimoroni \$PY_ENV_DIR
81+
VENV_DIR="$VENV_DIR"
82+
if [ ! -f \$VENV_DIR/bin/activate ]; then
83+
printf "Creating user Python environment in \$VENV_DIR, please wait...\n"
84+
mkdir -p \$VENV_DIR
85+
python3 -m venv --system-site-packages \$VENV_DIR
6886
fi
6987
printf " ↓ ↓ ↓ ↓ Hello, we've activated a Python venv for you. To exit, type \"deactivate\".\n"
70-
source \$PY_ENV_DIR/bin/activate
88+
source \$VENV_DIR/bin/activate
7189
EOF
7290
fi
7391
}
@@ -80,7 +98,7 @@ venv_check() {
8098
if [ ! -f $VENV_DIR/bin/activate ]; then
8199
inform "Creating virtual Python environment in $VENV_DIR, please wait...\n"
82100
mkdir -p $VENV_DIR
83-
/usr/bin/python3 -m venv $VENV_DIR --system-site-packages --prompt Pimoroni
101+
/usr/bin/python3 -m venv $VENV_DIR --system-site-packages
84102
venv_bash_snippet
85103
else
86104
inform "Found existing virtual Python environment in $VENV_DIR\n"
@@ -99,12 +117,12 @@ function do_config_backup {
99117
if [ ! $CONFIG_BACKUP == true ]; then
100118
CONFIG_BACKUP=true
101119
FILENAME="config.preinstall-$LIBRARY_NAME-$DATESTAMP.txt"
102-
inform "Backing up $CONFIG to /boot/$FILENAME\n"
103-
sudo cp $CONFIG /boot/$FILENAME
120+
inform "Backing up $CONFIG_DIR/$CONFIG_FILE to $CONFIG_DIR/$FILENAME\n"
121+
sudo cp $CONFIG_DIR/$CONFIG_FILE $CONFIG_DIR/$FILENAME
104122
mkdir -p $RESOURCES_TOP_DIR/config-backups/
105-
cp $CONFIG $RESOURCES_TOP_DIR/config-backups/$FILENAME
123+
cp $CONFIG_DIR/$CONFIG_FILE $RESOURCES_TOP_DIR/config-backups/$FILENAME
106124
if [ -f "$UNINSTALLER" ]; then
107-
echo "cp $RESOURCES_TOP_DIR/config-backups/$FILENAME $CONFIG" >> $UNINSTALLER
125+
echo "cp $RESOURCES_TOP_DIR/config-backups/$FILENAME $CONFIG_DIR/$CONFIG_FILE" >> $UNINSTALLER
108126
fi
109127
fi
110128
}
@@ -185,7 +203,7 @@ pip_pkg_install toml
185203
CONFIG_VARS=`$PYTHON - <<EOF
186204
import toml
187205
config = toml.load("pyproject.toml")
188-
p = dict(config['pimoroni'])
206+
p = dict(config['tool']['pimoroni'])
189207
# Convert list config entries into bash arrays
190208
for k, v in p.items():
191209
v = "'\n\t'".join(v)
@@ -244,10 +262,12 @@ fi
244262
245263
cd $WD
246264
265+
find_config
266+
247267
for ((i = 0; i < ${#SETUP_CMDS[@]}; i++)); do
248268
CMD="${SETUP_CMDS[$i]}"
249-
# Attempt to catch anything that touches /boot/config.txt and trigger a backup
250-
if [[ "$CMD" == *"raspi-config"* ]] || [[ "$CMD" == *"$CONFIG"* ]] || [[ "$CMD" == *"\$CONFIG"* ]]; then
269+
# Attempt to catch anything that touches config.txt and trigger a backup
270+
if [[ "$CMD" == *"raspi-config"* ]] || [[ "$CMD" == *"$CONFIG_DIR/$CONFIG_FILE"* ]] || [[ "$CMD" == *"\$CONFIG_DIR/\$CONFIG_FILE"* ]]; then
251271
do_config_backup
252272
fi
253273
eval $CMD
@@ -257,10 +277,10 @@ for ((i = 0; i < ${#CONFIG_TXT[@]}; i++)); do
257277
CONFIG_LINE="${CONFIG_TXT[$i]}"
258278
if ! [ "$CONFIG_LINE" == "" ]; then
259279
do_config_backup
260-
inform "Adding $CONFIG_LINE to $CONFIG\n"
261-
sudo sed -i "s/^#$CONFIG_LINE/$CONFIG_LINE/" $CONFIG
262-
if ! grep -q "^$CONFIG_LINE" $CONFIG; then
263-
printf "$CONFIG_LINE\n" | sudo tee --append $CONFIG
280+
inform "Adding $CONFIG_LINE to $CONFIG_DIR/$CONFIG_FILE\n"
281+
sudo sed -i "s/^#$CONFIG_LINE/$CONFIG_LINE/" $CONFIG_DIR/$CONFIG_FILE
282+
if ! grep -q "^$CONFIG_LINE" $CONFIG_DIR/$CONFIG_FILE; then
283+
printf "$CONFIG_LINE\n" | sudo tee --append $CONFIG_DIR/$CONFIG_FILE
264284
fi
265285
fi
266286
done

pyproject.toml

Lines changed: 5 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -122,27 +122,22 @@ ignore = [
122122
'requirements-dev.txt'
123123
]
124124

125-
[pimoroni]
125+
[tool.pimoroni]
126126
apt_packages = [
127127
"python3",
128128
"python3-pip",
129-
"python3-numpy",
130-
"python3-smbus",
131-
"python3-pil",
132129
"python3-cffi",
133-
"python3-spidev",
134-
"python3-rpi.gpio",
135130
"libportaudio2"
136131
]
137132
configtxt = [
138133
"dtoverlay=pi3-miniuart-bt",
139134
"dtoverlay=adau7002-simple"
140135
]
141136
commands = [
142-
"printf \"Setting up i2c and SPI..\n\"",
143-
"raspi-config nonint do_spi 0",
144-
"raspi-config nonint do_i2c 0",
145-
"printf \"Setting up serial for PMS5003..\n\"",
137+
"printf \"Setting up i2c and SPI..\\n\"",
138+
"sudo raspi-config nonint do_spi 0",
139+
"sudo raspi-config nonint do_i2c 0",
140+
"printf \"Setting up serial for PMS5003..\\n\"",
146141
"sudo raspi-config nonint do_serial_cons 1",
147142
"sudo raspi-config nonint do_serial_hw 1"
148143
]

0 commit comments

Comments
 (0)