12 votos

Necesidad de la barra de menú de la aplicación para mostrar la salida de la Terminal de comandos cada 60

Necesito una barra de menú de la aplicación* que me muestre la salida de un comando de terminal y ejecutar el comando de Terminal cada 60 o así.

O necesito una barra de menú de la aplicación que se lea el contenido de un archivo y actualizar cada vez que el archivo se actualiza.

(La salida sería de no más de 3 o 4 dígitos)

¿Hay algún esas aplicaciones?

* ni el Dock ni el Escritorio son alternativas viables. Debe ser la barra de menú.

Actualización 2014-06-16: La respuesta de Jun 9 '12 a las 2:15 no terminan trabajando para mí después de todo, así que todavía estoy en busca de una solución.

11voto

#!/usr/bin/env ruby

require "osx/cocoa"
include OSX

app = NSApplication.sharedApplication 
statusitem = NSStatusBar.systemStatusBar().statusItemWithLength(NSVariableStatusItemLength)
while true
    statusitem.setTitle(rand(999))
    sleep 1
end
app.run

(Si alguien que realmente sabe de Cacao quiere mejorar esto, siéntase libre de editar). Yo más o menos acaba de copiar la secuencia de comandos de adt del blog: Personal de puntos de experiencia y OSX menulets, que se mencionó en la pantalla - ¿hay una manera de tener AppleScript la salida mostrada en la barra de menú? - Apple.

6voto

Sergei Puntos 683

Aquí está la solución en python.
Instalar nalgas marco (vinculado repositorio tiene parche para OS X 10.9.3)
sudo pip install git+https://github.com/tito/rumps

Puede que necesite ajustar $PYTHONPATH a incluir pyobjc (Fundación)
export PYTHONPATH=/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python

Ajustar el código siguiente para sus necesidades:

#!/usr/bin/env python
import rumps
import os
import threading


class AwesomeStatusBarApp(rumps.App):
    def __init__(self):
        super(AwesomeStatusBarApp, self).__init__("Awesome App", "Title")
        tail(self)


def tail(self):
    threading.Timer(5, tail, [self, ]).start()
    self.title = os.popen("tail -1 /var/log/system.log").read()[0:-1][0:50]

AwesomeStatusBarApp().run()

No te olvides de limitar la longitud de la cadena ([0:50]) (o OS X eliminará en favor de los menús, si ambos no caben), y deshacerse de la nueva línea en el final ([0:-1])

enter image description here

3voto

memartin Puntos 41

Hay otro reciente alternativa de código abierto llamado BitBar (MIT License), que parece muy similar a "TextBar" y "ShellWrangler" y sorprende por su sencillez.

Usted puede ejecutar secuencias de comandos en cualquier intervalo de tiempo que está codificada en la secuencia de comandos de nombre de archivo (por ejemplo, my_script.60s.py) y se puede ejecutar cualquier secuencia de comandos que puede ejecutar también en su Terminal.

2voto

Yo estaba buscando una herramienta de este tipo muchas veces hasta que he implementado que para mi auto: http://shellwrangler.com. No hay anuncios, es gratis y usted puede construir cualquier cosa que te gusta.

2voto

moodforaday Puntos 2633

Por fin he encontrado lo que he estado buscando. De hecho, es mucho mejor que lo que yo estaba esperando:

TextBar

  • Configurar TextBar para ejecutar varias secuencias de comandos/comandos/etc y mostrar los resultados en su barra de menú.
  • Haga clic en el TextBar elemento para agregar el texto al portapapeles.
  • Activar/desactivar cada elemento individualmente.
  • Configurar la frecuencia con que desea que cada elemento para ser actualizado.
  • agregar un icono para cada elemento de la barra de menú (o ninguno)

He estado usando esto para la semana pasada o así, y es genial.

$3. Demo disponible en http://www.richsomerfield.com/apps/

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