私のアプリはNSTaskを使用してシェルスクリプトを実行し、それらのスクリプトの1つがX11アプリを起動します(具体的にはmeld
)。
私はこれがうまくいくと思っていたでしょう:
#!/bin/bash
source ~/.profile # setup $PATH/etc
meld .
しかし、それは失敗します:
gtk.icon_theme_get_default().append_search_path(meld.paths.icon_dir())
Traceback (most recent call last):
File "/usr/local/bin/meld", line 132, in <module>
gtk.icon_theme_get_default().append_search_path(meld.paths.icon_dir())
AttributeError: 'NoneType' object has no attribute 'append_search_path'
概念実証として、スクリプトをこれに変更しました。これは完全に機能します。
#!/usr/bin/ruby
exec 'osascript -e \'tell app "Terminal" to do script "meld ' + Dir.pwd + '" in front window\''
問題を引き起こしている人はいますか?シェルスクリプトを実行するための私のコードは次のとおりです。
NSTask *task = [[NSTask alloc] init];
task.launchPath = self.scriptURL.path;
task.standardOutput = [NSPipe pipe];
task.currentDirectoryPath = workingDirectoryURL.path;
[task launch];