4 votos

Estado de retorno de SleepDisabled en AppleScript

Estoy tratando de hacer un Applescript para habilitar o no SleepDisabled (utilizando pmset) dependiendo del estado de SleepDisabled.

Algo así como :

set SuperSleep to do shell script "return status of SleepDisabled"
if SuperSleep is equal to "0" then
do shell script "sudo pmset -a disablesleep 1" user name "Myname" password "Mypassword" with administrator privileges
else
do shell script "sudo pmset -a disablesleep 0" user name "Myname" password "Mypassword" with administrator privileges

He intentado buscar en man psmet o usando defaults read , pero sin éxito.

La única cosa que estoy pensando es el uso de pmset -g a se muestra esto :

System-wide power settings:
 SleepDisabled      0
Currently in use:
 lidwake              1
 autopoweroff         1
 standbydelayhigh     86400
 autopoweroffdelay    28800
 standbydelaylow      10800
 standby              1
 proximitywake        0
 ttyskeepawake        1
 hibernatemode        3
 powernap             0
 gpuswitch            2
 hibernatefile        /var/vm/sleepimage
 highstandbythreshold 50
 displaysleep         2
 sleep                2 (sleep prevented by coreaudiod, coreaudiod)
 tcpkeepalive         1
 halfdim              1
 acwake               0
 disksleep            10

Y, a continuación, consultar el estado de SleepDisabled en la lista, pero no sé cómo devolver el "0" o "1" de SleepDisabled...

2voto

user3439894 Puntos 5883

El siguiente me funciona:

set SuperSleep to (do shell script "pmset -g | awk '/SleepDisabled/{print $2}'")

if SuperSleep is equal to "0" then
    do shell script "pmset -a disablesleep 1" with administrator privileges
else
    do shell script "pmset -a disablesleep 0" with administrator privileges
end if

NOTA: no use sudo en do shell script comando, Sólo tiene que utilizar with administrator privileges como es todo lo que se necesita cuando usted normalmente do sudo en Terminal o un bash script. Además yo no incluiría el user name "Myname" y password "Mypassword" ya que no está cifrado en el archivo. Simplemente escriba en el cuadro de diálogo planteada por el administrator privileges opción.

También tenga en cuenta que SleepDisabled no estuvo presente en la salida de pmset -g cuando probé por primera vez en la Terminal, y no estaba presente hasta que usé el sudp pmset -a disablesleep 0 comando de Terminal. Si este es el caso en el sistema que usted necesita para ajustar el código para manejar esa situación. Se podría utilizar un si (compuesto) de control de la instrucción.


Nota: El ejemplo de AppleScript código es sólo eso y no contiene ningún error de manipulación como puede ser apropiado. La responsabilidad recae sobre el usuario para agregar cualquier error de manipulación como puede ser apropiado, necesitaba o quería. Echa un vistazo al tratar de instrucción y de error de instrucción en la Guía de Lenguaje de AppleScript. Véase también el Trabajo con los Errores.

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X