mirror of
				https://github.com/meshtastic/firmware.git
				synced 2025-10-29 23:54:41 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			81 lines
		
	
	
		
			3.2 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			81 lines
		
	
	
		
			3.2 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
| #!/bin/sh
 | |
| # postinst script for meshtasticd
 | |
| #
 | |
| # see: dh_installdeb(1)
 | |
| 
 | |
| set -e
 | |
| 
 | |
| # summary of how this script can be called:
 | |
| #        * <postinst> `configure' <most-recently-configured-version>
 | |
| #        * <old-postinst> `abort-upgrade' <new version>
 | |
| #        * <conflictor's-postinst> `abort-remove' `in-favour' <package>
 | |
| #          <new-version>
 | |
| #        * <postinst> `abort-remove'
 | |
| #        * <deconfigured's-postinst> `abort-deconfigure' `in-favour'
 | |
| #          <failed-install-package> <version> `removing'
 | |
| #          <conflicting-package> <version>
 | |
| # for details, see http://www.debian.org/doc/debian-policy/ or
 | |
| # the debian-policy package
 | |
| 
 | |
| 
 | |
| case "$1" in
 | |
|     configure|reconfigure)
 | |
|     # create spi, gpio groups (for udev rules)
 | |
|     # these groups already exist on Raspberry Pi OS
 | |
|         getent group spi >/dev/null 2>/dev/null || addgroup --system spi
 | |
|         getent group gpio >/dev/null 2>/dev/null || addgroup --system gpio
 | |
|     # create a meshtasticd group and user
 | |
|         getent passwd meshtasticd >/dev/null 2>/dev/null || adduser --system --home /var/lib/meshtasticd --no-create-home meshtasticd
 | |
|         getent group meshtasticd >/dev/null 2>/dev/null || addgroup --system meshtasticd
 | |
|         adduser meshtasticd meshtasticd >/dev/null 2>/dev/null
 | |
|         adduser meshtasticd spi >/dev/null 2>/dev/null
 | |
|         adduser meshtasticd gpio >/dev/null 2>/dev/null
 | |
|     # add meshtasticd user to appropriate groups (if they exist)
 | |
|         getent group plugdev >/dev/null 2>/dev/null && adduser meshtasticd plugdev >/dev/null 2>/dev/null
 | |
|         getent group dialout >/dev/null 2>/dev/null && adduser meshtasticd dialout >/dev/null 2>/dev/null
 | |
|         getent group i2c >/dev/null 2>/dev/null && adduser meshtasticd i2c >/dev/null 2>/dev/null
 | |
|         getent group video >/dev/null 2>/dev/null && adduser meshtasticd video >/dev/null 2>/dev/null
 | |
|         getent group audio >/dev/null 2>/dev/null && adduser meshtasticd audio >/dev/null 2>/dev/null
 | |
|         getent group input >/dev/null 2>/dev/null && adduser meshtasticd input >/dev/null 2>/dev/null
 | |
| 
 | |
| 
 | |
|     # migrate /root/.portduino to /var/lib/meshtasticd/.portduino
 | |
|     # should only run once, upon upgrade from < 2.6.9
 | |
|     if [ -n "$2" ] && dpkg --compare-versions "$2" lt 2.6.9; then
 | |
|         if [ -d /root/.portduino ] && [ ! -e /var/lib/meshtasticd/.portduino ]; then
 | |
|             cp -r /root/.portduino /var/lib/meshtasticd/.portduino
 | |
|             echo "Migrated meshtasticd VFS from /root/.portduino to /var/lib/meshtasticd/.portduino"
 | |
|             echo "meshtasticd now runs as the 'meshtasticd' user, not 'root'."
 | |
|             echo "See https://github.com/meshtastic/firmware/pull/6718 for details"
 | |
|         fi
 | |
|     fi
 | |
| 
 | |
|     if [ -d /var/lib/meshtasticd ]; then
 | |
|         chown -R meshtasticd:meshtasticd /var/lib/meshtasticd
 | |
|     fi
 | |
| 
 | |
|     if [ -d /etc/meshtasticd ]; then
 | |
|         chown -R meshtasticd:meshtasticd /etc/meshtasticd
 | |
|     fi
 | |
| 
 | |
|     if [ -d /usr/share/meshtasticd ]; then
 | |
|         chown -R meshtasticd:meshtasticd /usr/share/meshtasticd
 | |
|     fi
 | |
|     ;;
 | |
| 
 | |
|     abort-upgrade|abort-remove|abort-deconfigure)
 | |
|     ;;
 | |
| 
 | |
|     *)
 | |
|         echo "postinst called with unknown argument \`$1'" >&2
 | |
|         exit 1
 | |
|     ;;
 | |
| esac
 | |
| 
 | |
| # dh_installdeb will replace this with shell code automatically
 | |
| # generated by other debhelper scripts.
 | |
| 
 | |
| #DEBHELPER#
 | |
| 
 | |
| exit 0
 | 
