From 52271d2e6eb403e5d7c229a38ac4e39aa5e6a31e Mon Sep 17 00:00:00 2001 From: Valentin Lorentz Date: Fri, 17 Jun 2022 09:07:43 +0200 Subject: [PATCH 1/3] setup.py: Deduplicate script list --- setup.py | 35 ++++++++++++++++------------------- 1 file changed, 16 insertions(+), 19 deletions(-) diff --git a/setup.py b/setup.py index a84c6df25..1d6def55d 100644 --- a/setup.py +++ b/setup.py @@ -152,6 +152,17 @@ for plugin in plugins: if files: package_data.update({plugin_name: files}) +scripts = [ + '', + '-test', + '-botchk', + '-wizard', + '-adduser', + '-reset-password', + '-plugin-doc', + '-plugin-create', +] + setup( # Metadata name='limnoria', @@ -202,25 +213,11 @@ setup( package_data=package_data, - scripts=['scripts/supybot', - 'scripts/supybot-test', - 'scripts/supybot-botchk', - 'scripts/supybot-wizard', - 'scripts/supybot-adduser', - 'scripts/supybot-reset-password', - 'scripts/supybot-plugin-doc', - 'scripts/supybot-plugin-create', - ], - data_files=[('share/man/man1', ['man/supybot.1']), - ('share/man/man1', ['man/supybot-test.1']), - ('share/man/man1', ['man/supybot-botchk.1']), - ('share/man/man1', ['man/supybot-wizard.1']), - ('share/man/man1', ['man/supybot-adduser.1']), - ('share/man/man1', ['man/supybot-reset-password.1']), - ('share/man/man1', ['man/supybot-plugin-doc.1']), - ('share/man/man1', ['man/supybot-plugin-create.1']), - ], + scripts=['scripts/supybot%s' % name for name in scripts], - ) + data_files=( + [('share/man/man1', ['man/supybot%s.1' % name]) for name in scripts] + ), +) # vim:set shiftwidth=4 softtabstop=4 expandtab textwidth=79: From 0572d499883ba1f320a01f0125b00c5962fdc2cd Mon Sep 17 00:00:00 2001 From: Valentin Lorentz Date: Fri, 17 Jun 2022 09:08:50 +0200 Subject: [PATCH 2/3] Use setuptools 'entry_points' instead of distutils-style 'scripts' A future commit will add aliases for these scripts, and using entry_points will make them easier to set up. --- setup.py | 12 ++++++++++-- src/scripts/__init__.py | 0 scripts/supybot => src/scripts/limnoria.py | 17 ++++++++--------- .../scripts/limnoria_adduser.py | 0 .../scripts/limnoria_botchk.py | 5 ++++- .../scripts/limnoria_plugin_create.py | 9 ++++++--- .../scripts/limnoria_plugin_doc.py | 6 +++++- .../scripts/limnoria_reset_password.py | 7 +++++-- .../scripts/limnoria_test.py | 6 +++++- .../scripts/limnoria_wizard.py | 10 +++++++--- 10 files changed, 50 insertions(+), 22 deletions(-) create mode 100644 src/scripts/__init__.py rename scripts/supybot => src/scripts/limnoria.py (98%) rename scripts/supybot-adduser => src/scripts/limnoria_adduser.py (100%) rename scripts/supybot-botchk => src/scripts/limnoria_botchk.py (99%) rename scripts/supybot-plugin-create => src/scripts/limnoria_plugin_create.py (99%) rename scripts/supybot-plugin-doc => src/scripts/limnoria_plugin_doc.py (99%) rename scripts/supybot-reset-password => src/scripts/limnoria_reset_password.py (99%) rename scripts/supybot-test => src/scripts/limnoria_test.py (99%) rename scripts/supybot-wizard => src/scripts/limnoria_wizard.py (99%) diff --git a/setup.py b/setup.py index 1d6def55d..b31d9f208 100644 --- a/setup.py +++ b/setup.py @@ -117,7 +117,9 @@ packages = ['supybot', 'supybot.locales', 'supybot.utils', 'supybot.drivers', - 'supybot.plugins',] + \ + 'supybot.plugins', + 'supybot.scripts', + ] + \ ['supybot.plugins.'+s for s in plugins] + \ [ 'supybot.plugins.Dict.local', @@ -213,7 +215,13 @@ setup( package_data=package_data, - scripts=['scripts/supybot%s' % name for name in scripts], + entry_points={ + 'console_scripts': [ + 'supybot%s = supybot.scripts.limnoria%s:main' + % (name, name.replace('-', '_')) + for name in scripts + ] + }, data_files=( [('share/man/man1', ['man/supybot%s.1' % name]) for name in scripts] diff --git a/src/scripts/__init__.py b/src/scripts/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/scripts/supybot b/src/scripts/limnoria.py similarity index 98% rename from scripts/supybot rename to src/scripts/limnoria.py index e955433be..7178ee46e 100644 --- a/scripts/supybot +++ b/src/scripts/limnoria.py @@ -1,5 +1,3 @@ -#!/usr/bin/env python3 - ### # Copyright (c) 2003-2004, Jeremiah Fincher # Copyright (c) 2009, James McCoy @@ -35,8 +33,6 @@ This is the main program to run Supybot. """ -import supybot - import re import os import sys @@ -78,11 +74,14 @@ except ImportError: from supybot.version import version -def main(): +def run(): + import supybot.log as log import supybot.conf as conf import supybot.world as world import supybot.drivers as drivers + import supybot.ircmsgs as ircmsgs import supybot.schedule as schedule + import supybot.httpserver as httpserver # We schedule this event rather than have it actually run because if there # is a failure between now and the time it takes the Owner plugin to load # all the various plugins, our registry file might be wiped. That's bad. @@ -147,7 +146,7 @@ def main(): log.info('Total CPU time taken: %.2f seconds.', user+system) log.info('No more Irc objects, exiting.') -if __name__ == '__main__': +def main(): parser = optparse.OptionParser(usage='Usage: %prog [options] configFile', version='Limnoria %s running on Python %s' % (version, sys.version)) @@ -355,7 +354,7 @@ if __name__ == '__main__': import supybot.callbacks as callbacks import supybot.plugins.Owner as Owner - # These may take some resources, and it does not need to be run while boot, so + # This may take some resources, and it does not need to run while booting, so # we import it as late as possible (but before plugins are loaded). import supybot.httpserver as httpserver @@ -364,9 +363,9 @@ if __name__ == '__main__': if options.profile: import profile world.profiling = True - profile.run('main()', '%s-%i.prof' % (nick, time.time())) + profile.run('run()', '%s-%i.prof' % (nick, time.time())) else: - main() + run() # vim:set shiftwidth=4 softtabstop=4 expandtab textwidth=79: diff --git a/scripts/supybot-adduser b/src/scripts/limnoria_adduser.py similarity index 100% rename from scripts/supybot-adduser rename to src/scripts/limnoria_adduser.py diff --git a/scripts/supybot-botchk b/src/scripts/limnoria_botchk.py similarity index 99% rename from scripts/supybot-botchk rename to src/scripts/limnoria_botchk.py index 1ed0dd644..596a98d34 100644 --- a/scripts/supybot-botchk +++ b/src/scripts/limnoria_botchk.py @@ -53,7 +53,7 @@ def debug(s): s += os.linesep sys.stdout.write(s) -if __name__ == '__main__': +def main() # XXX I wanted this for conf.version, but this will create directories. We # really need to refactor conf so it either doesn't create directories, or # so that static information (like the version) can be imported from @@ -135,4 +135,7 @@ if __name__ == '__main__': else: sys.exit(0) +if __name__ == '__main__': + main() + # vim:set shiftwidth=4 softtabstop=4 expandtab textwidth=79: diff --git a/scripts/supybot-plugin-create b/src/scripts/limnoria_plugin_create.py similarity index 99% rename from scripts/supybot-plugin-create rename to src/scripts/limnoria_plugin_create.py index c4b687454..c4b34e009 100644 --- a/scripts/supybot-plugin-create +++ b/src/scripts/limnoria_plugin_create.py @@ -211,7 +211,7 @@ readmeTemplate = ''' %s '''.lstrip() -def main(): +def _main(): global copyright global license parser = optparse.OptionParser(usage='Usage: %prog [options]', @@ -307,13 +307,16 @@ def main(): print('Your new plugin template is in the %s directory.' % name) -if __name__ == '__main__': +def main(): try: - main() + _main() except KeyboardInterrupt: print() output("""It looks like you cancelled out of this script before it was finished. Obviously, nothing was written, but just run this script again whenever you want to generate a template for a plugin.""") +if __name__ == '__main__': + main() + # vim:set shiftwidth=4 softtabstop=4 expandtab textwidth=79: diff --git a/scripts/supybot-plugin-doc b/src/scripts/limnoria_plugin_doc.py similarity index 99% rename from scripts/supybot-plugin-doc rename to src/scripts/limnoria_plugin_doc.py index 224b11dbd..588291352 100644 --- a/scripts/supybot-plugin-doc +++ b/src/scripts/limnoria_plugin_doc.py @@ -276,7 +276,7 @@ def genDoc(m, options): finally: fd.close() -if __name__ == '__main__': +def main(): import glob import os.path import optparse @@ -349,4 +349,8 @@ if __name__ == '__main__': shutil.rmtree(conf.supybot.directories.conf()) shutil.rmtree(conf.supybot.directories.data()) + +if __name__ == '__main__': + main() + # vim:set shiftwidth=4 softtabstop=4 expandtab textwidth=78: diff --git a/scripts/supybot-reset-password b/src/scripts/limnoria_reset_password.py similarity index 99% rename from scripts/supybot-reset-password rename to src/scripts/limnoria_reset_password.py index cd92a0f2d..08f0a037e 100644 --- a/scripts/supybot-reset-password +++ b/src/scripts/limnoria_reset_password.py @@ -40,7 +40,7 @@ import os import sys import optparse -def main(): +def _main(): import supybot.log as log import supybot.conf as conf conf.supybot.log.stdout.setValue(False) @@ -102,10 +102,13 @@ def main(): ircdb.users.close() print('User %s\'s password reset!' % name) -if __name__ == '__main__': +def main(): try: main() except KeyboardInterrupt: pass +if __name__ == '__main__': + main() + # vim:set shiftwidth=4 softtabstop=4 expandtab textwidth=79: diff --git a/scripts/supybot-test b/src/scripts/limnoria_test.py similarity index 99% rename from scripts/supybot-test rename to src/scripts/limnoria_test.py index f21a1f1ff..7db6b9107 100644 --- a/scripts/supybot-test +++ b/src/scripts/limnoria_test.py @@ -119,7 +119,7 @@ class path(str): def __eq__(self, other): return self._r.split(self) == self._r.split(other) -if __name__ == '__main__': +def main(): import glob import os.path import optparse @@ -243,4 +243,8 @@ if __name__ == '__main__': else: sys.exit(1) + +if __name__ == '__main__': + main() + # vim:set shiftwidth=4 softtabstop=4 expandtab textwidth=79: diff --git a/scripts/supybot-wizard b/src/scripts/limnoria_wizard.py similarity index 99% rename from scripts/supybot-wizard rename to src/scripts/limnoria_wizard.py index 39b5b8184..71f545248 100644 --- a/scripts/supybot-wizard +++ b/src/scripts/limnoria_wizard.py @@ -166,7 +166,7 @@ def getDirectoryName(default, basedir=os.curdir, prompt=True): return (dir, os.path.dirname(orig_dir)) -def main(): +def _main(): import supybot.version as version parser = optparse.OptionParser(usage='Usage: %prog [options]', version='Supybot %s' % version.version) @@ -815,9 +815,9 @@ def main(): just have to start it like you start all your other Python scripts.""" % \ (filename, filename)) -if __name__ == '__main__': +def main(): try: - main() + _main() except KeyboardInterrupt: # We may still be using bold text when exiting during a prompt if questions.useBold: @@ -829,4 +829,8 @@ if __name__ == '__main__': it was done. Unfortunately, I didn't get to write anything to file. Please run the wizard again to completion.""") + +if __name__ == '__main__': + main() + # vim:set shiftwidth=4 softtabstop=4 expandtab textwidth=79: From c333af9a442b0e905b492f9ee846cce4bdc714b2 Mon Sep 17 00:00:00 2001 From: Valentin Lorentz Date: Fri, 17 Jun 2022 11:48:27 +0200 Subject: [PATCH 3/3] Add alternative name 'limnoria-' in addition to 'supybot-*' for scripts The 'supybot-*' variants will be deprecated in a year or two, to give distributions time to provide the new names before updating install/usage documentation. --- man/limnoria-adduser.1 | 42 ++++++++++++++++++++++ man/limnoria-botchk.1 | 54 ++++++++++++++++++++++++++++ man/limnoria-plugin-create.1 | 43 ++++++++++++++++++++++ man/limnoria-plugin-doc.1 | 48 +++++++++++++++++++++++++ man/limnoria-reset-password.1 | 35 ++++++++++++++++++ man/limnoria-test.1 | 51 ++++++++++++++++++++++++++ man/limnoria-wizard.1 | 42 ++++++++++++++++++++++ man/limnoria.1 | 66 ++++++++++++++++++++++++++++++++++ man/supybot-adduser.1 | 43 +--------------------- man/supybot-botchk.1 | 55 +--------------------------- man/supybot-plugin-create.1 | 44 +---------------------- man/supybot-plugin-doc.1 | 49 +------------------------ man/supybot-reset-password.1 | 36 +------------------ man/supybot-test.1 | 52 +-------------------------- man/supybot-wizard.1 | 43 +--------------------- man/supybot.1 | 67 +---------------------------------- setup.py | 15 +++++--- 17 files changed, 399 insertions(+), 386 deletions(-) create mode 100644 man/limnoria-adduser.1 create mode 100644 man/limnoria-botchk.1 create mode 100644 man/limnoria-plugin-create.1 create mode 100644 man/limnoria-plugin-doc.1 create mode 100644 man/limnoria-reset-password.1 create mode 100644 man/limnoria-test.1 create mode 100644 man/limnoria-wizard.1 create mode 100644 man/limnoria.1 mode change 100644 => 120000 man/supybot-adduser.1 mode change 100644 => 120000 man/supybot-botchk.1 mode change 100644 => 120000 man/supybot-plugin-create.1 mode change 100644 => 120000 man/supybot-plugin-doc.1 mode change 100644 => 120000 man/supybot-reset-password.1 mode change 100644 => 120000 man/supybot-test.1 mode change 100644 => 120000 man/supybot-wizard.1 mode change 100644 => 120000 man/supybot.1 diff --git a/man/limnoria-adduser.1 b/man/limnoria-adduser.1 new file mode 100644 index 000000000..53aadad2b --- /dev/null +++ b/man/limnoria-adduser.1 @@ -0,0 +1,42 @@ +.\" Process this file with +.\" groff -man -Tascii limnoria-adduser.1 +.\" +.TH LIMNORIA-ADDUSER 1 "APRIL 2005" +.SH NAME +limnoria-adduser \- Adds a user to a Limnoria users.conf file +.SH SYNOPSIS +.B limnoria-adduser +.RI [ options ] " users.conf +.SH DESCRIPTION +.B limnoria-adduser +adds a user to the specified users.conf file. +.SH OPTIONS +.TP +.B \-\^\-version +Show version of program. +.TP +.BR \-h ", " \-\^\-help +Show summary of options. +.TP +.BR \-u " NAME" "\fR,\fP \-\^\-username=" NAME +Specifies the username to use for the new user. +.TP +.BR \-p " PASSWORD" "\fR,\fP \-\^\-password=" PASSWORD +Specifies the password to use for the new user. +.TP +.BR \-c " CAPABILITY" "\fR,\fP \-\^\-capability=" CAPABILITY +Capability the user should have; this option may be given +multiple times. +.SH "SEE ALSO" +.IR python (1), +.IR limnoria (1), +.IR limnoria-test (1), +.IR limnoria-botchk (1), +.IR limnoria-wizard (1), +.IR limnoria-plugin-doc (1), +.IR limnoria-plugin-create (1) +.SH AUTHOR +This manual page was originally written by James McCoy +. Permission is granted to copy, +distribute and/or modify this document under the terms of the Limnoria +license, a BSD-style license. diff --git a/man/limnoria-botchk.1 b/man/limnoria-botchk.1 new file mode 100644 index 000000000..1a28a7019 --- /dev/null +++ b/man/limnoria-botchk.1 @@ -0,0 +1,54 @@ +.\" Process this file with +.\" groff -man -Tascii limnoria-botchk.1 +.\" +.TH LIMNORIA-BOTCHK 1 "APRIL 2005" +.SH NAME +limnoria-botchk \- A script to start Limnoria if it's not already running. +.SH SYNOPSIS +.B limnoria-botchk +.RI [ options ] +.SH DESCRIPTION +.B limnoria-botchk +is a script that will start Limnoria if it detects that one is not currently +running. This can be useful for scheduling +.IR limnoria (1) +to run via +.IR cron (8). +.SH OPTIONS +.TP +.BR \-h ", " \-\^\-help +Show summary of options. +.TP +.BR \-v ", " \-\^\-verbose +Use verbose output when running the script. +.TP +.BI \-\^\-botdir= BOTDIR +Determines which directory the bot be started in. +.TP +.BI \-\^\-pidfile= PIDFILE +Specifies the name of the pidfile to look for. This should be relative +to the given botdir. +.TP +.BI \-\^\-limnoria= LIMNORIA +Specifies the location of +.IR limnoria (1). +If this is not given, it is assumed that +.IR limnoria (1) +is in the user's $PATH. +.TP +.BI \-\^\-conffile= CONFFILE +Specifies the path to the bot's configuration file. This will be used +when (re)starting the bot. +.SH "SEE ALSO" +.IR python (1), +.IR limnoria (1), +.IR limnoria-test (1), +.IR limnoria-wizard (1), +.IR limnoria-adduser (1), +.IR limnoria-plugin-doc (1), +.IR limnoria-plugin-create (1) +.SH AUTHOR +This manual page was originally written by James McCoy +. Permission is granted to copy, +distribute and/or modify this document under the terms of the Limnoria +license, a BSD-style license. diff --git a/man/limnoria-plugin-create.1 b/man/limnoria-plugin-create.1 new file mode 100644 index 000000000..03295f4b4 --- /dev/null +++ b/man/limnoria-plugin-create.1 @@ -0,0 +1,43 @@ +.\" Process this file with +.\" groff -man -Tascii limnoria-plugin-create.1 +.\" +.TH LIMNORIA-PLUGIN-CREATE 1 "APRIL 2005" +.SH NAME +limnoria-plugin-create \- A wizard for creating Limnoria plugins +.SH SYNOPSIS +.B limnoria-plugin-create +.RI [ options ] +.SH DESCRIPTION +.B limnoria-plugin-create +is a wizard that creates a template python source file for a new +.IR limnoria (1) +plugin. +.SH OPTIONS +.TP +.B \-\^\-version +Show version of program. +.TP +.BR \-h ", " \-\^\-help +Show summary of options. +.TP +.BI \-n " NAME" "\fR,\fP \-\^\-name=" NAME +Sets the name for the plugin. +.TP +.BR \-t ", " \-\^\-thread +Makes the plugin threaded. +.TP +.BI \-\^\-real\-name= REALNAME +Specify what real name the copyright is assigned to. +.SH "SEE ALSO" +.IR python (1), +.IR limnoria (1), +.IR limnoria-test (1), +.IR limnoria-botchk (1), +.IR limnoria-wizard (1), +.IR limnoria-adduser (1), +.IR limnoria-plugin-doc (1) +.SH AUTHOR +This manual page was originally written by James McCoy +. Permission is granted to copy, +distribute and/or modify this document under the terms of the Limnoria +license, a BSD-style license. diff --git a/man/limnoria-plugin-doc.1 b/man/limnoria-plugin-doc.1 new file mode 100644 index 000000000..e20f30221 --- /dev/null +++ b/man/limnoria-plugin-doc.1 @@ -0,0 +1,48 @@ +.\" Process this file with +.\" groff -man -Tascii limnoria-plugin-doc.1 +.\" +.TH LIMNORIA-PLUGIN-DOC 1 "May 2009" +.SH NAME +limnoria-plugin-doc \- Generates the documentation for a Limnoria plugin +.SH SYNOPSIS +.B limnoria-plugin-doc +.RI [ options ] +.SH DESCRIPTION +.B limnoria-plugin-doc +is used to generate documentation (StructuredText or reStructuredText format) +for a +.IR limnoria (1) +plugin. +.SH OPTIONS +.TP +.B \-\^\-version +Show version of program. +.TP +.BR \-h ", " \-\^\-help +Show summary of options. +.TP +.BR \-c ", " \-\^\-clean +Clean the various data/conf/log directories after generating the docs. +.TP +.BR \-o ", " \-\^\-output\-dir= \fIOUTPUTDIR +Specifies the directory in which to write the documentation for the plugin. +.TP +.BR \-f ", " \-\^\-format= \fIFORMAT +Specifies which output format to use. Choices are 'rst' or 'stx'. +.TP +.BI \-\^\-plugins\-dir= PLUGINSDIRS +Looks in the given directory for plugins and generates documentation for all of +them. +.SH "SEE ALSO" +.IR python (1), +.IR limnoria (1), +.IR limnoria-test (1), +.IR limnoria-botchk (1), +.IR limnoria-wizard (1), +.IR limnoria-adduser (1), +.IR limnoria-plugin-create (1) +.SH AUTHOR +This manual page was originally written by James McCoy +. Permission is granted to copy, +distribute and/or modify this document under the terms of the Limnoria +license, a BSD-style license. diff --git a/man/limnoria-reset-password.1 b/man/limnoria-reset-password.1 new file mode 100644 index 000000000..00633b839 --- /dev/null +++ b/man/limnoria-reset-password.1 @@ -0,0 +1,35 @@ +.\" Process this file with +.\" groff -man -Tascii limnoria-reset-password.1 +.\" +.TH LIMNORIA-RESET-PASSWORD 1 "JUNE 2022" +.SH NAME +limnoria-reset-password \- Changes a user's password in a Limnoria users.conf file +.SH SYNOPSIS +.B limnoria-reset-password +.RI [ options ] " users.conf +.SH DESCRIPTION +.B limnoria-reset-password +changes a user's password in a Limnoria users.conf file +.SH OPTIONS +.TP +.B \-\^\-version +Show version of program. +.TP +.BR \-h ", " \-\^\-help +Show summary of options. +.TP +.BR \-u " NAME" "\fR,\fP \-\^\-username=" NAME +Specifies the username to use for the new user. +.TP +.BR \-p " PASSWORD" "\fR,\fP \-\^\-password=" PASSWORD +Specifies the new password to use for the new user. +.SH "SEE ALSO" +.IR python (1), +.IR limnoria (1), +.IR limnoria-adduser (1) +.SH AUTHOR +This manual page was originally written by Valentin Lorentz +. Permission is granted to copy, +distribute and/or modify this document under the terms of the Limnoria +license, a BSD-style license. + diff --git a/man/limnoria-test.1 b/man/limnoria-test.1 new file mode 100644 index 000000000..40cfa6af3 --- /dev/null +++ b/man/limnoria-test.1 @@ -0,0 +1,51 @@ +.\" Process this file with +.\" groff -man -Tascii limnoria-test.1 +.\" +.TH LIMNORIA-TEST 1 "OCTOBER 2005" +.SH NAME +limnoria-test \- Runs the test suite for a Limnoria plugin +.SH SYNOPSIS +.B limnoria-test +.RI [ options ] " plugins +.SH DESCRIPTION +.B limnoria-test +Runs the test suite for a Limnoria plugin +.SH OPTIONS +.TP +.B \-\^\-version +Show version of program. +.TP +.BR \-h ", " \-\^\-help +Show summary of options. +.TP +.BR \-c ", " \-\^\-clean +Cleans the various data/conf/logs directories before running tests. +.TP +.BR \-t " TIMEOUT" "\fR,\fP \-\^\-timeout=" TIMEOUT +Specifies the timeout for tests to return responses. +.TP +.BR \-v ", " \-\^\-verbose +Sets the verbose flag, logging extra information about each test that runs. +.TP +.BR \-\^\-no\-network +Prevents the network-based tests from being run. +.TP +.BR \-\^\-trace +Traces all calls made. Unless you're really in a pinch, you probably +shouldn't do this; it results in copious amounts of output. +.TP +.BR "\fR,\fP \-\^\-plugins\-dir=" PLUGINSDIR +Looks in the given directory for plugins and loads the tests for all of them. +.SH "SEE ALSO" +.IR python (1), +.IR limnoria (1), +.IR limnoria-botchk (1), +.IR limnoria-wizard (1), +.IR limnoria-adduser (1), +.IR limnoria-plugin-doc (1), +.IR limnoria-plugin-create (1) +.SH AUTHOR +This manual page was originally written by James McCoy +. Permission is granted to copy, +distribute and/or modify this document under the terms of the Limnoria +license, a BSD-style license. diff --git a/man/limnoria-wizard.1 b/man/limnoria-wizard.1 new file mode 100644 index 000000000..d659cbf29 --- /dev/null +++ b/man/limnoria-wizard.1 @@ -0,0 +1,42 @@ +.\" Process this file with +.\" groff -man -Tascii limnoria-wizard.1 +.\" +.TH LIMNORIA-WIZARD 1 "SEPTEMBER 2004" +.SH NAME +limnoria-wizard \- A wizard for creating Limnoria configuration files +.SH SYNOPSIS +.B limnoria-wizard +.RI [ options ] +.SH DESCRIPTION +.B limnoria-wizard +is an in-depth wizard that provides a nice user interface for creating +configuration files for +.IR limnoria (1). +.SH OPTIONS +.TP +.B \-\^\-version +Show version of program. +.TP +.BR \-h ", " \-\^\-help +Show summary of options. +.TP +.B \-\^\-allow\-root +Determines whether the wizard will be allowed to run as root. You do not +want this. Do not do it. Even if you think you want it, you do not. +.TP +.B \-\^\-no\-network +Determines whether the wizard will be allowed to run without a network +connection. +.SH "SEE ALSO" +.IR python (1), +.IR limnoria (1), +.IR limnoria-test (1), +.IR limnoria-botchk (1), +.IR limnoria-adduser (1), +.IR limnoria-plugin-doc (1), +.IR limnoria-plugin-create (1) +.SH AUTHOR +This manual page was originally written by James McCoy +. Permission is granted to copy, +distribute and/or modify this document under the terms of the Limnoria +license, a BSD-style license. diff --git a/man/limnoria.1 b/man/limnoria.1 new file mode 100644 index 000000000..9a50d0e82 --- /dev/null +++ b/man/limnoria.1 @@ -0,0 +1,66 @@ +.\" Process this file with +.\" groff -man -Tascii limnoria.1 +.\" +.TH LIMNORIA 1 "JULY 2009" +.SH NAME +limnoria - A robust and user friendly Python IRC bot +.SH SYNOPSIS +.B limnoria +.RI [ options ] " configFile +.SH DESCRIPTION +.B Limnoria +is a robust, user-friendly, and programmer-friendly Python IRC bot. +It aims to be an adequate replacement for most existing IRC bots. It +includes a very flexible and powerful ACL system for controlling access +to commands, as well as more than 50 builtin plugins providing around +400 actual commands. +.SH OPTIONS +.TP +.B \-\^\-version +Show version of program. +.TP +.BR \-h ", " \-\^\-help +Show summary of options. +.TP +.BR \-P ", " \-\^\-profile +Enable profiling. +.TP +.BI \-n " NICK" "\fR,\fP \-\^\-nick=" NICK +Nick the bot should use. +.TP +.BI \-u " USER" "\fR,\fP \-\^\-user=" USER +Full username the bot should use. +.TP +.BI \-i " IDENT" "\fR,\fP \-\^\-ident=" IDENT +Ident the bot should use. +.TP +.BR \-d ", " \-\^\-daemon +Determines whether the bot will daemonize. This is a no-op on +non-POSIX systems. +.TP +.B \-\^\-allow\-default\-owner +Determines whether the bot will allow its defaultCapabilities not to +include "\-owner", thus giving all users the owner capability by +default. This is dumb, hence we require a command-line option to +enable it. +.TP +.B \-\^\-allow\-root +Determines whether the bot will be allowed to run as root. You do not +want this. Do not do it. Even if you think you want it, you do not. +.TP +.B \-\^\-debug +Determines whether some extra debugging stuff will be logged by this +script. +.SH "SEE ALSO" +.IR python (1), +.IR limnoria-test (1), +.IR limnoria-botchk (1), +.IR limnoria-wizard (1), +.IR limnoria-adduser (1), +.IR limnoria-plugin-doc (1), +.IR limnoria-plugin-create (1) +.SH AUTHOR +This manual page was originally written by James McCoy +. Permission is granted to copy, +distribute and/or modify this document under the terms of the Limnoria +license, a BSD-style license. diff --git a/man/supybot-adduser.1 b/man/supybot-adduser.1 deleted file mode 100644 index b183e5049..000000000 --- a/man/supybot-adduser.1 +++ /dev/null @@ -1,42 +0,0 @@ -.\" Process this file with -.\" groff -man -Tascii supybot-adduser.1 -.\" -.TH SUPYBOT-ADDUSER 1 "APRIL 2005" -.SH NAME -supybot-adduser \- Adds a user to a Supybot users.conf file -.SH SYNOPSIS -.B supybot-adduser -.RI [ options ] " users.conf -.SH DESCRIPTION -.B supybot-adduser -adds a user to the specified users.conf file. -.SH OPTIONS -.TP -.B \-\^\-version -Show version of program. -.TP -.BR \-h ", " \-\^\-help -Show summary of options. -.TP -.BR \-u " NAME" "\fR,\fP \-\^\-username=" NAME -Specifies the username to use for the new user. -.TP -.BR \-p " PASSWORD" "\fR,\fP \-\^\-password=" PASSWORD -Specifies the password to use for the new user. -.TP -.BR \-c " CAPABILITY" "\fR,\fP \-\^\-capability=" CAPABILITY -Capability the user should have; this option may be given -multiple times. -.SH "SEE ALSO" -.IR python (1), -.IR supybot (1), -.IR supybot-test (1), -.IR supybot-botchk (1), -.IR supybot-wizard (1), -.IR supybot-plugin-doc (1), -.IR supybot-plugin-create (1) -.SH AUTHOR -This manual page was originally written by James McCoy -. Permission is granted to copy, -distribute and/or modify this document under the terms of the Supybot -license, a BSD-style license. diff --git a/man/supybot-adduser.1 b/man/supybot-adduser.1 new file mode 120000 index 000000000..965a5b053 --- /dev/null +++ b/man/supybot-adduser.1 @@ -0,0 +1 @@ +limnoria-adduser.1 \ No newline at end of file diff --git a/man/supybot-botchk.1 b/man/supybot-botchk.1 deleted file mode 100644 index d40ad87c0..000000000 --- a/man/supybot-botchk.1 +++ /dev/null @@ -1,54 +0,0 @@ -.\" Process this file with -.\" groff -man -Tascii supybot-botchk.1 -.\" -.TH SUPYBOT-BOTCHK 1 "APRIL 2005" -.SH NAME -supybot-botchk \- A script to start Supybot if it's not already running. -.SH SYNOPSIS -.B supybot-botchk -.RI [ options ] -.SH DESCRIPTION -.B supybot-botchk -is a script that will start Supybot if it detects that one is not currently -running. This can be useful for scheduling -.IR supybot (1) -to run via -.IR cron (8). -.SH OPTIONS -.TP -.BR \-h ", " \-\^\-help -Show summary of options. -.TP -.BR \-v ", " \-\^\-verbose -Use verbose output when running the script. -.TP -.BI \-\^\-botdir= BOTDIR -Determines which directory the bot be started in. -.TP -.BI \-\^\-pidfile= PIDFILE -Specifies the name of the pidfile to look for. This should be relative -to the given botdir. -.TP -.BI \-\^\-supybot= SUPYBOT -Specifies the location of -.IR supybot (1). -If this is not given, it is assumed that -.IR supybot (1) -is in the user's $PATH. -.TP -.BI \-\^\-conffile= CONFFILE -Specifies the path to the bot's configuration file. This will be used -when (re)starting the bot. -.SH "SEE ALSO" -.IR python (1), -.IR supybot (1), -.IR supybot-test (1), -.IR supybot-wizard (1), -.IR supybot-adduser (1), -.IR supybot-plugin-doc (1), -.IR supybot-plugin-create (1) -.SH AUTHOR -This manual page was originally written by James McCoy -. Permission is granted to copy, -distribute and/or modify this document under the terms of the Supybot -license, a BSD-style license. diff --git a/man/supybot-botchk.1 b/man/supybot-botchk.1 new file mode 120000 index 000000000..1073f3a4b --- /dev/null +++ b/man/supybot-botchk.1 @@ -0,0 +1 @@ +limnoria-botchk.1 \ No newline at end of file diff --git a/man/supybot-plugin-create.1 b/man/supybot-plugin-create.1 deleted file mode 100644 index aed4bd24c..000000000 --- a/man/supybot-plugin-create.1 +++ /dev/null @@ -1,43 +0,0 @@ -.\" Process this file with -.\" groff -man -Tascii supybot-plugin-create.1 -.\" -.TH SUPYBOT-PLUGIN-CREATE 1 "APRIL 2005" -.SH NAME -supybot-plugin-create \- A wizard for creating Supybot plugins -.SH SYNOPSIS -.B supybot-plugin-create -.RI [ options ] -.SH DESCRIPTION -.B supybot-plugin-create -is a wizard that creates a template python source file for a new -.IR supybot (1) -plugin. -.SH OPTIONS -.TP -.B \-\^\-version -Show version of program. -.TP -.BR \-h ", " \-\^\-help -Show summary of options. -.TP -.BI \-n " NAME" "\fR,\fP \-\^\-name=" NAME -Sets the name for the plugin. -.TP -.BR \-t ", " \-\^\-thread -Makes the plugin threaded. -.TP -.BI \-\^\-real\-name= REALNAME -Specify what real name the copyright is assigned to. -.SH "SEE ALSO" -.IR python (1), -.IR supybot (1), -.IR supybot-test (1), -.IR supybot-botchk (1), -.IR supybot-wizard (1), -.IR supybot-adduser (1), -.IR supybot-plugin-doc (1) -.SH AUTHOR -This manual page was originally written by James McCoy -. Permission is granted to copy, -distribute and/or modify this document under the terms of the Supybot -license, a BSD-style license. diff --git a/man/supybot-plugin-create.1 b/man/supybot-plugin-create.1 new file mode 120000 index 000000000..3cf3fc58e --- /dev/null +++ b/man/supybot-plugin-create.1 @@ -0,0 +1 @@ +limnoria-plugin-create.1 \ No newline at end of file diff --git a/man/supybot-plugin-doc.1 b/man/supybot-plugin-doc.1 deleted file mode 100644 index 857987d4b..000000000 --- a/man/supybot-plugin-doc.1 +++ /dev/null @@ -1,48 +0,0 @@ -.\" Process this file with -.\" groff -man -Tascii supybot-plugin-doc.1 -.\" -.TH SUPYBOT-PLUGIN-DOC 1 "May 2009" -.SH NAME -supybot-plugin-doc \- Generates the documentation for a Supybot plugin -.SH SYNOPSIS -.B supybot-plugin-doc -.RI [ options ] -.SH DESCRIPTION -.B supybot-plugin-doc -is used to generate documentation (StructuredText or reStructuredText format) -for a -.IR supybot (1) -plugin. -.SH OPTIONS -.TP -.B \-\^\-version -Show version of program. -.TP -.BR \-h ", " \-\^\-help -Show summary of options. -.TP -.BR \-c ", " \-\^\-clean -Clean the various data/conf/log directories after generating the docs. -.TP -.BR \-o ", " \-\^\-output\-dir= \fIOUTPUTDIR -Specifies the directory in which to write the documentation for the plugin. -.TP -.BR \-f ", " \-\^\-format= \fIFORMAT -Specifies which output format to use. Choices are 'rst' or 'stx'. -.TP -.BI \-\^\-plugins\-dir= PLUGINSDIRS -Looks in the given directory for plugins and generates documentation for all of -them. -.SH "SEE ALSO" -.IR python (1), -.IR supybot (1), -.IR supybot-test (1), -.IR supybot-botchk (1), -.IR supybot-wizard (1), -.IR supybot-adduser (1), -.IR supybot-plugin-create (1) -.SH AUTHOR -This manual page was originally written by James McCoy -. Permission is granted to copy, -distribute and/or modify this document under the terms of the Supybot -license, a BSD-style license. diff --git a/man/supybot-plugin-doc.1 b/man/supybot-plugin-doc.1 new file mode 120000 index 000000000..988a2fc15 --- /dev/null +++ b/man/supybot-plugin-doc.1 @@ -0,0 +1 @@ +limnoria-plugin-doc.1 \ No newline at end of file diff --git a/man/supybot-reset-password.1 b/man/supybot-reset-password.1 deleted file mode 100644 index 50981ba9e..000000000 --- a/man/supybot-reset-password.1 +++ /dev/null @@ -1,35 +0,0 @@ -.\" Process this file with -.\" groff -man -Tascii supybot-reset-password.1 -.\" -.TH SUPYBOT-RESET-PASSWORD 1 "JUNE 2022" -.SH NAME -supybot-reset-password \- Changes a user's password in a Supybot users.conf file -.SH SYNOPSIS -.B supybot-reset-password -.RI [ options ] " users.conf -.SH DESCRIPTION -.B supybot-reset-password -changes a user's password in a Supybot users.conf file -.SH OPTIONS -.TP -.B \-\^\-version -Show version of program. -.TP -.BR \-h ", " \-\^\-help -Show summary of options. -.TP -.BR \-u " NAME" "\fR,\fP \-\^\-username=" NAME -Specifies the username to use for the new user. -.TP -.BR \-p " PASSWORD" "\fR,\fP \-\^\-password=" PASSWORD -Specifies the new password to use for the new user. -.SH "SEE ALSO" -.IR python (1), -.IR supybot (1), -.IR supybot-adduser (1) -.SH AUTHOR -This manual page was originally written by Valentin Lorentz -. Permission is granted to copy, -distribute and/or modify this document under the terms of the Supybot -license, a BSD-style license. - diff --git a/man/supybot-reset-password.1 b/man/supybot-reset-password.1 new file mode 120000 index 000000000..5af6b9cc4 --- /dev/null +++ b/man/supybot-reset-password.1 @@ -0,0 +1 @@ +limnoria-reset-password.1 \ No newline at end of file diff --git a/man/supybot-test.1 b/man/supybot-test.1 deleted file mode 100644 index 87a9dd6b1..000000000 --- a/man/supybot-test.1 +++ /dev/null @@ -1,51 +0,0 @@ -.\" Process this file with -.\" groff -man -Tascii supybot-test.1 -.\" -.TH SUPYBOT-TEST 1 "OCTOBER 2005" -.SH NAME -supybot-test \- Runs the test suite for a Supybot plugin -.SH SYNOPSIS -.B supybot-test -.RI [ options ] " plugins -.SH DESCRIPTION -.B supybot-test -Runs the test suite for a Supybot plugin -.SH OPTIONS -.TP -.B \-\^\-version -Show version of program. -.TP -.BR \-h ", " \-\^\-help -Show summary of options. -.TP -.BR \-c ", " \-\^\-clean -Cleans the various data/conf/logs directories before running tests. -.TP -.BR \-t " TIMEOUT" "\fR,\fP \-\^\-timeout=" TIMEOUT -Specifies the timeout for tests to return responses. -.TP -.BR \-v ", " \-\^\-verbose -Sets the verbose flag, logging extra information about each test that runs. -.TP -.BR \-\^\-no\-network -Prevents the network-based tests from being run. -.TP -.BR \-\^\-trace -Traces all calls made. Unless you're really in a pinch, you probably -shouldn't do this; it results in copious amounts of output. -.TP -.BR "\fR,\fP \-\^\-plugins\-dir=" PLUGINSDIR -Looks in the given directory for plugins and loads the tests for all of them. -.SH "SEE ALSO" -.IR python (1), -.IR supybot (1), -.IR supybot-botchk (1), -.IR supybot-wizard (1), -.IR supybot-adduser (1), -.IR supybot-plugin-doc (1), -.IR supybot-plugin-create (1) -.SH AUTHOR -This manual page was originally written by James McCoy -. Permission is granted to copy, -distribute and/or modify this document under the terms of the Supybot -license, a BSD-style license. diff --git a/man/supybot-test.1 b/man/supybot-test.1 new file mode 120000 index 000000000..15a8a7bc9 --- /dev/null +++ b/man/supybot-test.1 @@ -0,0 +1 @@ +limnoria-test.1 \ No newline at end of file diff --git a/man/supybot-wizard.1 b/man/supybot-wizard.1 deleted file mode 100644 index 64cf4e05e..000000000 --- a/man/supybot-wizard.1 +++ /dev/null @@ -1,42 +0,0 @@ -.\" Process this file with -.\" groff -man -Tascii supybot-wizard.1 -.\" -.TH SUPYBOT-WIZARD 1 "SEPTEMBER 2004" -.SH NAME -supybot-wizard \- A wizard for creating Supybot configuration files -.SH SYNOPSIS -.B supybot-wizard -.RI [ options ] -.SH DESCRIPTION -.B supybot-wizard -is an in-depth wizard that provides a nice user interface for creating -configuration files for -.IR supybot (1). -.SH OPTIONS -.TP -.B \-\^\-version -Show version of program. -.TP -.BR \-h ", " \-\^\-help -Show summary of options. -.TP -.B \-\^\-allow\-root -Determines whether the wizard will be allowed to run as root. You do not -want this. Do not do it. Even if you think you want it, you do not. -.TP -.B \-\^\-no\-network -Determines whether the wizard will be allowed to run without a network -connection. -.SH "SEE ALSO" -.IR python (1), -.IR supybot (1), -.IR supybot-test (1), -.IR supybot-botchk (1), -.IR supybot-adduser (1), -.IR supybot-plugin-doc (1), -.IR supybot-plugin-create (1) -.SH AUTHOR -This manual page was originally written by James McCoy -. Permission is granted to copy, -distribute and/or modify this document under the terms of the Supybot -license, a BSD-style license. diff --git a/man/supybot-wizard.1 b/man/supybot-wizard.1 new file mode 120000 index 000000000..133a433e3 --- /dev/null +++ b/man/supybot-wizard.1 @@ -0,0 +1 @@ +limnoria-wizard.1 \ No newline at end of file diff --git a/man/supybot.1 b/man/supybot.1 deleted file mode 100644 index 3c8e0e1fb..000000000 --- a/man/supybot.1 +++ /dev/null @@ -1,66 +0,0 @@ -.\" Process this file with -.\" groff -man -Tascii supybot.1 -.\" -.TH SUPYBOT 1 "JULY 2009" -.SH NAME -supybot - A robust and user friendly Python IRC bot -.SH SYNOPSIS -.B supybot -.RI [ options ] " configFile -.SH DESCRIPTION -.B Supybot -is a robust, user-friendly, and programmer-friendly Python IRC bot. -It aims to be an adequate replacement for most existing IRC bots. It -includes a very flexible and powerful ACL system for controlling access -to commands, as well as more than 50 builtin plugins providing around -400 actual commands. -.SH OPTIONS -.TP -.B \-\^\-version -Show version of program. -.TP -.BR \-h ", " \-\^\-help -Show summary of options. -.TP -.BR \-P ", " \-\^\-profile -Enable profiling. -.TP -.BI \-n " NICK" "\fR,\fP \-\^\-nick=" NICK -Nick the bot should use. -.TP -.BI \-u " USER" "\fR,\fP \-\^\-user=" USER -Full username the bot should use. -.TP -.BI \-i " IDENT" "\fR,\fP \-\^\-ident=" IDENT -Ident the bot should use. -.TP -.BR \-d ", " \-\^\-daemon -Determines whether the bot will daemonize. This is a no-op on -non-POSIX systems. -.TP -.B \-\^\-allow\-default\-owner -Determines whether the bot will allow its defaultCapabilities not to -include "\-owner", thus giving all users the owner capability by -default. This is dumb, hence we require a command-line option to -enable it. -.TP -.B \-\^\-allow\-root -Determines whether the bot will be allowed to run as root. You do not -want this. Do not do it. Even if you think you want it, you do not. -.TP -.B \-\^\-debug -Determines whether some extra debugging stuff will be logged by this -script. -.SH "SEE ALSO" -.IR python (1), -.IR supybot-test (1), -.IR supybot-botchk (1), -.IR supybot-wizard (1), -.IR supybot-adduser (1), -.IR supybot-plugin-doc (1), -.IR supybot-plugin-create (1) -.SH AUTHOR -This manual page was originally written by James McCoy -. Permission is granted to copy, -distribute and/or modify this document under the terms of the Supybot -license, a BSD-style license. diff --git a/man/supybot.1 b/man/supybot.1 new file mode 120000 index 000000000..00459a378 --- /dev/null +++ b/man/supybot.1 @@ -0,0 +1 @@ +limnoria.1 \ No newline at end of file diff --git a/setup.py b/setup.py index b31d9f208..1a5c3edee 100644 --- a/setup.py +++ b/setup.py @@ -217,15 +217,20 @@ setup( entry_points={ 'console_scripts': [ - 'supybot%s = supybot.scripts.limnoria%s:main' - % (name, name.replace('-', '_')) + '%s%s = supybot.scripts.limnoria%s:main' + % (prefix, name, name.replace('-', '_')) for name in scripts + for prefix in ('supybot', 'limnoria') ] }, - data_files=( - [('share/man/man1', ['man/supybot%s.1' % name]) for name in scripts] - ), + data_files=[ + ('share/man/man1', [ + 'man/%s%s.1' % (prefix, name) + for name in scripts + for prefix in ('supybot', 'limnoria') + ]), + ], ) # vim:set shiftwidth=4 softtabstop=4 expandtab textwidth=79: