Skip to content

Commit daea2f1

Browse files
authored
Display useful message when Linux post-install script has insufficient permissions
The Arduino Boards Manager automatically executes the `post_install.sh` script during installation of the platform on a Linux machine. This platform's post-install script is intended to create a udev rules file that gives write permissions for the USB devices of the platform's boards. These permissions are required in order to upload to the boards. The creation of the udev rules file requires superuser privileges, which are typically not available in the context of the post-install script's execution. The script contains code to check whether the necessary privileges are available. If not, it prints a message and skips the udev rules file creation. Previously the message printed when the udev rules file creation was not possible was "Please run as root". This message was completely meaningless to the user when printed during the Boards Manager installation. Worse, it might cause them to think they must run the Arduino development software as root user, which is a bad idea and also wouldn't result in the udev rules file being created since the installation of the platform to the user's account was already completed. The message is hereby updated to provide a meaningful explanation of the potential problem as well as the specific command the user can run from the terminal to execute the script as superuser.
1 parent 6293cea commit daea2f1

File tree

1 file changed

+13
-2
lines changed

1 file changed

+13
-2
lines changed

Diff for: post_install.sh

+13-2
Original file line numberDiff line numberDiff line change
@@ -12,8 +12,19 @@ SUBSYSTEMS=="usb", ATTRS{idVendor}=="0525", MODE:="0666"
1212
EOF
1313
}
1414

15-
if [ "$EUID" -ne 0 ]
16-
then echo "Please run as root"
15+
if [ "$EUID" -ne 0 ]; then
16+
if [ -e "${PWD}/post_install.sh" ]; then
17+
echo
18+
echo "You might need to configure permissions for uploading."
19+
echo "To do so, run the following command from the terminal:"
20+
echo "sudo \"${PWD}/post_install.sh\""
21+
echo
22+
else
23+
# Script was executed from another path. It is assumed this will only occur when user is executing script directly.
24+
# So it is not necessary to provide the command line.
25+
echo "Please run as root"
26+
fi
27+
1728
exit
1829
fi
1930

0 commit comments

Comments
 (0)