Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
home:pratyushd:branches:home:crameleon:LibertaCasa
limnoria
limnoria_reset_password-suse.patch
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File limnoria_reset_password-suse.patch of Package limnoria
--- Limnoria/src/scripts/limnoria_reset_password.py 2024-01-07 06:00:00.872528999 +0100 +++ limnoria_reset_password-suse 2024-01-07 05:44:27.950123373 +0100 @@ -1,4 +1,4 @@ -#!/usr/bin/env python3 +#!/usr/bin/python3 ### # Copyright (c) 2002-2004, Jeremiah Fincher @@ -31,20 +31,31 @@ ### +import sys +import time -import supybot - -from supybot.questions import * +# Note: This warning block and the imports are the only patches in limnoria_reset-password. The real patches happen in limnoria_reset-password-suse. +SUSEREADMEPATH = '/usr/share/doc/packages/python311-limnoria/README.SUSE' +try: + print('') + print('------------------------------------------------------------') + print("""WARNING:\nYou are running the upstream limnoria_reset-password script. It does not know about the correct directory layout and may interfere with the system installation of Limnoria.\nWhilst you are free to proceed with this upstream script at your own risk, it is highly recommended to run ` sudo -u limnoria limnoria_reset-password-suse ` instead.\nPlease read %s for further SUSE specific details on operating your Limnoria installation.\nThe script execution will now pause for 10 seconds, giving you time to abort using Ctrl-C.""" % SUSEREADMEPATH) + print('------------------------------------------------------------') + print('') + time.sleep(10) +except KeyboardInterrupt: + sys.exit(0) -import os -import sys import optparse +import os +import supybot +from supybot.questions import * def _main(): import supybot.log as log import supybot.conf as conf conf.supybot.log.stdout.setValue(False) - parser = optparse.OptionParser(usage='Usage: %prog [options] <users.conf>', + parser = optparse.OptionParser(usage='Usage: sudo -u limnoria %prog [options] <instance>', version='supybot %s' % conf.version) parser.add_option('-u', '--username', action='store', default='', dest='name', @@ -53,20 +64,39 @@ dest='password', help='new password for the user.') (options, args) = parser.parse_args() + if not pwd.getpwuid(os.getuid()).pw_name == 'limnoria': + print('Please run this script using `sudo -u limnoria limnoria_reset_password-suse <instance name>`.') + sys.exit(1) if len(args) != 1: - parser.error('Specify the users.conf file you\'d like to use. ' - 'Be sure *not* to specify your registry file, generated ' - 'by supybot-wizard. This is not the file you want. ' - 'Instead, take a look in your conf directory (usually ' - 'named "conf") and take a gander at the file ' - '"users.conf". That\'s the one you want.') - - filename = os.path.abspath(args[0]) - conf.supybot.directories.log.setValue('/') - conf.supybot.directories.conf.setValue('/') - conf.supybot.directories.data.setValue('/') - conf.supybot.directories.plugins.setValue(['/']) + parser.error('Specify the instance name of the bot you\'d like to start a password reset for.') + + ### SUSE + SUSEINSTANCECONFIG = '/etc/limnoria/.limnoria.configured' + SUSECONFDIR = '/etc/limnoria/' + SUSELOGDIR = '/var/log/limnoria/' + SUSEDATADIR = '/var/lib/limnoria/' + + instance = args[0] + + with open(SUSEINSTANCECONFIG, 'r') as admFile: + if not any(instance == instanceEntry.rstrip('\n') for instanceEntry in admFile): + print("""Unable to find a bot instance called %s, was it configured using supybot-wizard-suse?""" % instance) + sys.exit(1) + + instanceConfigDir = SUSECONFDIR + instance + instanceDataDir = SUSEDATADIR + instance + instanceLogDir = SUSELOGDIR + instance + + conf.supybot.directories.log.setValue(instanceLogDir) + conf.supybot.directories.data.setValue(instanceDataDir) + conf.supybot.directories.conf.setValue(instanceConfigDir) + + import supybot.log as log + conf.supybot.log.stdout.setValue(False) + + filename = '/etc/limnoria/' + instance + '/users.conf' conf.supybot.databases.users.filename.setValue(filename) + import supybot.ircdb as ircdb if not options.name:
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor