2013-06-27 17 views
5

Ho scritto un semplice script di shell per eseguire un'attività comune e voglio essere in grado di eseguirlo ogni volta che si fa clic su un pulsante. Ho già utilizzato gnome-shell-extension-tool per creare già l'esempio Hello World, ma ora ho bisogno di sapere come farlo semplicemente eseguire un comando arbitrario quando si fa clic. Non ci sono input o output a cui interessare; deve solo funzionare.Come si chiama un programma da riga di comando da un'estensione shell di gnome?

risposta

8

Dopo un po 'googling più creativo, ho trovato la soluzione:

const Util = imports.misc.util; 
Util.spawn(['/path/to/program', 'arg1', 'arg2']) 
1
const GLib = imports.gi.GLib; 
let stuff = GLib.spawn_command_line_sync("cat hello.txt")[1].toString(); 

Per coloro che desiderano leggere l'output del comando, utilizzare questo. La directory di lavoro predefinita per le estensioni della shell Gnome è la directory home dell'utente.

Ho solo pensato di menzionare queste cose, perché mi ci è voluto un po 'per capirle.

+0

Grazie, quello che funziona in prefs.js (Util non può essere importato, non so perché, è davvero un tale dolore senza un buon manuale di riferimento). –