Historia de usuario:
Como usuario de MacBookPro, quiero ejecutar una secuencia de comandos que expulsa mi unidad USB cuando desconecto la fuente de alimentación para no tener que acordarme de expulsarla antes de agarrar mi computadora portátil y apresurarme a una reunión.
Criterios de aceptación:
- NO hay aplicaciones de terceros
- NO sondeo. Debe ser impulsado por un evento
Ya tengo un script que uso para detectar cambios en el cable de red. Lo lanzo usando launchctl con un WatchPath como este en mi archivo .plist:
<key>WatchPaths</key>
<array>
<string>/Library/Preferences/SystemConfiguration</string>
</array>
Espero encontrar una forma similar de iniciar una secuencia de comandos diferente cuando mi cable de alimentación esté conectado / desconectado.
Ya sé cómo detectar si la alimentación de CA está conectada o no ... solo necesito encontrar un evento que me indique que puedo hacerlo.
AC_POWER='ioreg -l | grep ExternalConnected | cut -d"=" -f2 | sed -e 's/ //g''
if [[ "$AC_POWER" == "No" ]]
then
for MEDIA_PATH in "/Volumes/Backup Drive 1/" /Volumes/MyPhotos/
do
if [ -e "$MEDIA_PATH" ]
then
echo "Ejecting $MEDIA_PATH"
diskutil eject "$MEDIA_PATH"
else
echo "$MEDIA_PATH not mounted"
fi
done
else
echo "AC Power connected"
fi