mirror of
https://github.com/craigerl/aprsd.git
synced 2026-06-12 10:58:54 -04:00
Look in multiple places for fortune bin
Update the fortune plugin to look in multiple places for the fortune binary. It lives in different places for debian vs alpine.
This commit is contained in:
+21
-15
@@ -5,32 +5,38 @@ import subprocess
|
||||
from aprsd import packets, plugin
|
||||
from aprsd.utils import trace
|
||||
|
||||
LOG = logging.getLogger('APRSD')
|
||||
|
||||
LOG = logging.getLogger("APRSD")
|
||||
|
||||
DEFAULT_FORTUNE_PATH = "/usr/games/fortune"
|
||||
FORTUNE_PATHS = [
|
||||
'/usr/games/fortune',
|
||||
'/usr/local/bin/fortune',
|
||||
'/usr/bin/fortune',
|
||||
]
|
||||
|
||||
|
||||
class FortunePlugin(plugin.APRSDRegexCommandPluginBase):
|
||||
"""Fortune."""
|
||||
|
||||
command_regex = r"^([f]|[f]\s|fortune)"
|
||||
command_name = "fortune"
|
||||
short_description = "Give me a fortune"
|
||||
command_regex = r'^([f]|[f]\s|fortune)'
|
||||
command_name = 'fortune'
|
||||
short_description = 'Give me a fortune'
|
||||
|
||||
fortune_path = None
|
||||
|
||||
def setup(self):
|
||||
self.fortune_path = shutil.which(DEFAULT_FORTUNE_PATH)
|
||||
LOG.info(f"Fortune path {self.fortune_path}")
|
||||
for path in FORTUNE_PATHS:
|
||||
if shutil.which(path):
|
||||
self.fortune_path = path
|
||||
break
|
||||
if not self.fortune_path:
|
||||
self.enabled = False
|
||||
else:
|
||||
self.enabled = True
|
||||
LOG.info(f'Fortune path {self.fortune_path}')
|
||||
|
||||
@trace.trace
|
||||
def process(self, packet: packets.MessagePacket):
|
||||
LOG.info("FortunePlugin")
|
||||
LOG.info('FortunePlugin')
|
||||
|
||||
# fromcall = packet.get("from")
|
||||
# message = packet.get("message_text", None)
|
||||
@@ -39,8 +45,8 @@ class FortunePlugin(plugin.APRSDRegexCommandPluginBase):
|
||||
reply = None
|
||||
|
||||
try:
|
||||
cmnd = [self.fortune_path, "-s", "-n 60"]
|
||||
command = " ".join(cmnd)
|
||||
cmnd = [self.fortune_path, '-s', '-n 60']
|
||||
command = ' '.join(cmnd)
|
||||
output = subprocess.check_output(
|
||||
command,
|
||||
shell=True,
|
||||
@@ -48,10 +54,10 @@ class FortunePlugin(plugin.APRSDRegexCommandPluginBase):
|
||||
text=True,
|
||||
)
|
||||
output = (
|
||||
output.replace("\r", "")
|
||||
.replace("\n", "")
|
||||
.replace(" ", "")
|
||||
.replace("\t", " ")
|
||||
output.replace('\r', '')
|
||||
.replace('\n', '')
|
||||
.replace(' ', '')
|
||||
.replace('\t', ' ')
|
||||
)
|
||||
except subprocess.CalledProcessError as ex:
|
||||
reply = f"Fortune command failed '{ex.output}'"
|
||||
|
||||
Reference in New Issue
Block a user