Benutzer Geschichte:
Als MacBookPro-Benutzer möchte ich ein Skript ausführen, das mein USB-Laufwerk auswirft, wenn ich die Stromquelle trenne, damit ich nicht daran denken muss, es auszuwerfen, bevor ich meinen Laptop greife und zu einer Besprechung eile.
Akzeptanzkriterium:
- KEINE Apps von Drittanbietern
- KEINE Abstimmung. Es muss ereignisgesteuert sein
Ich habe bereits ein Skript, mit dem ich Netzwerkkabeländerungen erkennen kann. Ich starte es mit launchctl mit einem WatchPath wie diesem in meiner .plist-Datei:
<key>WatchPaths</key>
<array>
<string>/Library/Preferences/SystemConfiguration</string>
</array>
Ich hoffe, einen ähnlichen Weg zu finden, um ein anderes Skript zu starten, wenn mein Netzkabel angeschlossen / abgezogen ist.
Ich weiß bereits, wie ich feststellen kann, ob Wechselstrom angeschlossen ist oder nicht ... Ich muss nur ein Ereignis finden, das mir sagt, dass ich es tun kann.
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
Antworten:
Mit ControlPlane , das dort angekommen ist , wo der coole, aber fehlerhafte Marco Polo aufgehört hat, können Sie kontextbasierte Regeln erstellen, die Dinge für Sie tun können, je nachdem, wo Sie sich befinden und was Sie tun. Es verwendet einen evidenzbasierten Ansatz, um zu bestimmen, wo Sie sich befinden, und führt, sobald Ihre Standortkriterien einen bestimmten Konfidenzschwellenwert überschreiten, Aktionen für Sie aus, basierend auf dem Vertrauen, dass Sie sich "an diesem Standort" befinden.
Es ist ziemlich cool.
Eine der unterstützten Beweisquellen ist die aktuelle Stromquelle. Die Unterstützung für Beweisquellen basiert auf ereignisgesteuerten Quellen.
Und es ist Open Source .
Und frei.
Sie können es so einrichten, dass ein AppleScript (oder ein Shell-Skript) für Sie ausgeführt wird, wenn sich die Stromquelle ändert oder wenn sie sich in eine Richtung ändert.
quelle
Ich verstehe, dass Sie keine Anwendungen von Drittanbietern verwenden möchten. Sie sollten sich jedoch bewusst sein, dass es eine gibt, die genau das kann, wonach Sie fragen. Dies beweist, dass das, was Sie suchen, möglich ist.
Power Manager kann ein Skript ausführen, wenn Sie Ihr MacBook Pro vom Stromnetz trennen .
Ich verwende diese Funktion, damit mein MacBook Pro jedes Mal, wenn ich das Netzkabel ein- und ausstecke, ein Shell-Skript ausführt.
Haftungsausschluss: Ich arbeite für DssW, die Entwickler von Power Manager. Ich kann bestätigen, dass diese Lösung nicht abfragt und ereignisgesteuert ist.
quelle
Ich weiß, dass ich sehr spät zum Spiel komme, um auf diese Anfrage zu antworten, aber ich habe das einfach selbst gemacht und es funktioniert perfekt. Alles, was Sie brauchen, ist ein LaunchAgent, der com.apple.telemetry.battery.charge-Cycle in / private / var / root / Library / Preferences überwacht (ich mache dies auf Yosemite und habe es nicht in anderen Betriebssystemen getestet.)
quelle