golangのosxのサーバモードで動作するcliアプリをビルドしています。私はサーバーの世界から来て、どのようにosxのための消費者向けcliツールを適切に配布するのか分かりません。 cliは、launchdで簡単に実現できるサービスとして実行できます。OSX cli/server appの配布方法
launchdの設定:
<plist version="1.0">
<dict>
<key>KeepAlive</key>
<true/>
<key>Label</key>
<string>focus-daemon</string>
<key>RunAtLoad</key>
<true />
<key>Program</key>
<string>/usr/local/bin/focus</string>
</dict>
</plist>
構築と実行も非常に簡単です:
go build main.go
sudo cp main /usr/local/bin/focus
rm main
sudo chown root /usr/local/bin/focus
sudo chmod 4555 /usr/local/bin/focus
cp focus.plist ~/Library/LaunchAgents/com.21stio.focus.plist
launchctl load ~/Library/LaunchAgents/com.21stio.focus.plist
プロセスを構築しているバイナリにSBITを設定するにはsudoを必要とします。
ユーザーが.shスクリプトを実行する必要はありません。たぶん、私はそれにBREWやDMGを使うことができました。しかし、私はどのように正しい場所にLaunchd config
を置くことができるのか分かりません。
インストーラを作成することができます。 http://s.sudre.free.fr/Packaging.html – pvg