| Make idlerpg daemon compatible to new annna interface. - annna - Annna the nice… | |
| git clone git://bitreich.org/annna/ git://enlrupgkhuxnvlhsf6lc3fziv5h2hhfrinws6… | |
| Log | |
| Files | |
| Refs | |
| Tags | |
| README | |
| --- | |
| commit 9ac9a626966ebe392af14998d3ed750aad7e8f6a | |
| parent 972167062f331f659119e14b978c2fb493ef0083 | |
| Author: Annna Robert-Houdin <[email protected]> | |
| Date: Sun, 19 Oct 2025 14:34:58 +0200 | |
| Make idlerpg daemon compatible to new annna interface. | |
| Diffstat: | |
| M annna-channel-service | 2 +- | |
| M modules/idlerpg/idlerpg-channel-se… | 27 +++++++++++++-------------- | |
| 2 files changed, 14 insertions(+), 15 deletions(-) | |
| --- | |
| diff --git a/annna-channel-service b/annna-channel-service | |
| @@ -6,7 +6,7 @@ case "${IRC_SERVER}" in | |
| \#bitreich-idle) | |
| export SERVICE_BASE="${ANNNA_MODBASE}/idlerpg" | |
| # TODO: Fix idle service for new architecture. | |
| - # ${SERVICE_BASE}/idlerpg-channel-service.py & | |
| + ${SERVICE_BASE}/idlerpg-channel-service.py & | |
| exit | |
| ;; | |
| \#bitreich-radio) | |
| diff --git a/modules/idlerpg/idlerpg-channel-service.py b/modules/idlerpg/idler… | |
| @@ -16,6 +16,11 @@ import errno | |
| import fcntl | |
| import functools | |
| +def annna_alive(base): | |
| + if os.path.exists("%s/running" % (base)): | |
| + return 1 | |
| + return 0 | |
| + | |
| def readin_file(f): | |
| lines = [] | |
| try: | |
| @@ -60,7 +65,7 @@ def say(fpath, text): | |
| def usage(app): | |
| app = os.path.basename(app) | |
| - print("usage: %s [-h] ircuser basepath ircpath server channel" % (app), fi… | |
| + print("usage: %s [-h]" % (app), file=sys.stderr) | |
| sys.exit(1) | |
| def main(args): | |
| @@ -76,18 +81,14 @@ def main(args): | |
| else: | |
| assert False, "unhandled option" | |
| - if len(largs) < 5: | |
| - usage(args[0]) | |
| - return 1 | |
| - | |
| - ircuser = largs[0] | |
| - basepath = largs[1] | |
| - ircpath = largs[2] | |
| - server = largs[3] | |
| - channel = largs[4] | |
| + annnabase = os.environ["ANNNA_BASE"] | |
| + ircuser = os.environ["IRC_USER"] | |
| + basepath = os.environ["SERVICE_BASE"] | |
| + ircpath = os.environ["ANNNA_IRCBASE"] | |
| + server = os.environ["IRC_SERVER"] | |
| + channel = os.environ["IRC_CHANNEL"] | |
| serverpath = "%s/%s" % (ircpath, server) | |
| chanpath = "%s/%s" % (serverpath, channel) | |
| - | |
| chaninpath = "%s/in" % (chanpath) | |
| def get_channel_users(): | |
| @@ -109,14 +110,12 @@ def main(args): | |
| return 1 | |
| penalties = readin_dictfile("%s/penalties.txt" % (basepath)) | |
| - | |
| classes = readin_dictfile("%s/classes.txt" % (basepath)) | |
| hardware = readin_dictfile("%s/hardware.txt" % (basepath)) | |
| shields = readin_dictfile("%s/shields.txt" % (basepath)) | |
| weapons = readin_dictfile("%s/weapons.txt" % (basepath)) | |
| quests = readin_dictfile("%s/quests.txt" % (basepath)) | |
| events = readin_dictfile("%s/events.txt" % (basepath)) | |
| - | |
| hackers = readin_dictfile("%s/hackers.txt" % (basepath)) | |
| for hacker in hackers.keys(): | |
| hackers[hacker][0] = int(hackers[hacker][0]) | |
| @@ -291,7 +290,7 @@ def main(args): | |
| sys.exit(1) | |
| chanoutfd.readlines() | |
| - while 1: | |
| + while annna_alive(annnabase): | |
| # Game ticks every 5 seconds. | |
| try: | |
| (rfds, wfds, sfds) = select.select([inotifyfd], [], [], 5) |