mirror of
https://github.com/uhIgnacio/EmoteManager.git
synced 2024-08-15 02:23:13 +00:00
add systemd notify support
This commit is contained in:
parent
722c87c75b
commit
eb6e275c8a
4 changed files with 361 additions and 0 deletions
33
cogs/systemd.py
Normal file
33
cogs/systemd.py
Normal file
|
@ -0,0 +1,33 @@
|
|||
import asyncio
|
||||
import os
|
||||
import socket
|
||||
|
||||
from discord.ext import commands
|
||||
|
||||
from utils.socket import open_datagram_endpoint
|
||||
|
||||
class SystemdNotifier(commands.Cog):
|
||||
def __init__(self):
|
||||
self.os_sock = socket.socket(family=socket.AF_UNIX, type=socket.SOCK_DGRAM)
|
||||
self.connect_task = asyncio.create_task(self.connect())
|
||||
self.addr = os.environ['NOTIFY_SOCKET']
|
||||
|
||||
def send(self, msg):
|
||||
self.sock.send(msg, self.addr)
|
||||
|
||||
async def connect(self):
|
||||
self.sock = await open_datagram_endpoint(sock=self.os_sock)
|
||||
|
||||
def cog_unload(self):
|
||||
self.connect_task.cancel()
|
||||
|
||||
@commands.Cog.listener()
|
||||
async def on_shard_ready(self, shard_id):
|
||||
self.send(b'STATUS=Ready on shard %d' % shard_id)
|
||||
|
||||
@commands.Cog.listener()
|
||||
async def on_ready(self):
|
||||
self.send(b'READY=1')
|
||||
|
||||
def setup(bot):
|
||||
bot.add_cog(SystemdNotifier())
|
Loading…
Add table
Add a link
Reference in a new issue