Published on

macでwakapiのサーバ起動を自動化する

Authors

こんにちは
自分はmacでwakapiを使用してコーディングなどの時間を可視化して楽しんでいますが、 これをローカルで楽に実装できないかを試してみました。

GitHub - muety/wakapi: 📊 A minimalist, self-hosted WakaTime-compatible backend for coding statisticsGitHub - muety/wakapi: 📊 A minimalist, self-hosted WakaTime-compatible backend for coding statistics📊 A minimalist, self-hosted WakaTime-compatible backend for coding statistics - muety/wakapigithub.comgithub.com

現状

./wakapi

を実行すればlocalhostに鯖が立つ。(自分は~/config.ymlの設定で3000番から変えています)
ログインするたびにこれを実行するのがめんどくさいのでこれを自動化したい

方法

以下のように~/Library/LaunchAgents/com.<ユーザ名>.wakapi.plistを作成する。 ユーザ名のとことはお使いのmacに合わせてください。

なお、pathは絶対pathを使用しないと動きません。~/とかも使えません。

<?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>Label</key>
    <string>com.{ユーザ名}.wakapi</string>
    <key>ProgramArguments</key>
    <array>
        <string>/Users/{ユーザ名}/wakapi</string>
        <string>-config</string>
        <string>/Users/{ユーザ名}/config.yml<string>
    </array>
    <key>RunAtLoad</key>
    <true/>
    <key>KeepAlive</key>
    <true/>
    <key>StandardOutPath</key>
    <string>/tmp/wakapi.log</string>
    <key>StandardErrorPath</key>
    <string>/tmp/wakapi.err</string>
</dict>
</plist>

指定の場所に作成できたら以下を実行してロードします

launchctl load ~/Library/LaunchAgents/com.{ユーザ名}.wakapi.plist

これでログイン時に自動で実行され、なんらかの問題で終了しても自動で再実行されます。 実際にlocalhostにアクセスして確認してみてください。

登録後すぐは、これを実行すれば実行できます

launchctl start com.{ユーザ名}.wakapi

これで停止します

launchctl stop com.{ユーザ名}.ewakapi

登録解除はこれです

launchctl unload ~/Library/LaunchAgents/com.{ユーザ名}.wakapi.plist