Java に関する Safari でブロックされているアプリケーションとサイトのホワイトリストの追加を自動化しようとしています。バイナリ plist をエクスポートして bash 経由で編集することはできますが、検索して置換する方法、または特定の配置でファイルに追加する方法に行き詰まっています。
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>BookmarksSidebarWidth</key>
<real>194</real>
...
<key>WhitelistedBlockedPlugins</key>
<array>
<dict>
<key>PluginHostname</key>
<string>www.java.com</string>
<key>PluginIdentifier</key>
<string>com.oracle.java.JavaAppletPlugin</string>
<key>PluginLastVisitedDate</key>
<date>2013-06-05T17:03:26Z</date>
<key>PluginName</key>
<string>Java Applet Plug-in</string>
<key>PluginPageURL</key>
<string>http://www.java.com/en/download/testjava.jsp</string>
<key>PluginPolicy</key>
<string>PluginPolicyBlockWhenInsecure</string>
</dict>
</array>
...
<key>com.apple.Safari.ContentPageGroupIdentifier.WebKit2UsesPageCache</key>
<true/>
</dict>
</plist>
の
<key>WhitelistedBlockedPlugins</key>
<array>
<dict>
....
....
</dict>
</array>
存在しない場合は、検索して置換または追加したいビットです。存在する場合は、とにかくそこに何が起こっているのかを制御したいので<key>WhitelistedBlockedPlugins</key>
、で始まりクロージングで終わるすべてを置き換えても問題ありません。</array>
存在しない場合は、ファイルの最後の final の直前に追加できると思い</dict>
ます。
これは私が思いついたロジックですが、見つかった場合は置換し、見つからない場合は追加できる解決策を見つけるのに非常に苦労しています。
Stack Overflow で同様の投稿を読んだ後、いくつかのことを試しましたが成功しませんでした。XCode/CLI ツールに付属するものを含め、OSX にネイティブなものは何でも使用したいと考えています。
私が試したこと:
echo
ファイルへの挿入は機能しますが、前にそれを行う方法を見つけていません。対応する配列がどこにも見つからない</dict>
場合にのみ、それを行いたいと思います。<key>WhitelistedBlockedPlugins</key>
誰にもガイダンスや解決策がありますか? ありがとう