私は非常に同じ質問をしています。まだそれを行うには良い方法を見つけていない。現在、私はそうすることを2つの非理想的なアプローチをしようとしている:
- ハードコードパスを、例えば:
~/.local/share/gnome-shell/extensions/[email protected]/mybinary
- グローバルかつ独立した拡張子からバイナリをインストールします。
あなたが例えばUtil.spawnCommandLine
を使用することができますパスしたら:
const Util = imports.misc.util;
Util.spawnCommandLine('/path/to/your/bin');
それともGLib.spawn_async
あなたがコールバックを必要とする場合:
const GLib = imports.gi.GLib;
let [success, pid] = GLib.spawn_async(null,
['/path/to/your/bin', '--param1','--param2'],
null,
GLib.SpawnFlags.SEARCH_PATH | GLib.SpawnFlags.DO_NOT_REAP_CHILD,
null);
if (!success) {
global.log('ERROR NO SUCCESS');
return;
}
GLib.child_watch_add(GLib.PRIORITY_DEFAULT, pid, function (pid, status) {
GLib.spawn_close_pid(pid);
if (status !== 0 && status !== '0') {
global.log('ERROR');
}
else {
global.log('SUCCESS', status);
}
});
がある場合、私は欠けている部分があります何とかヘルパーメソッドを使って拡張パスを取得する方法です。しかし、ドキュメントはひどく開発されておらず、ソースコードを閲覧しても私には解決策がまだ見つかりませんでした。