./Config: Somewhat rewrote script, improved nicklen prompting and interrupt handling.

This commit is contained in:
AppleDash 2014-06-12 10:14:10 -04:00 committed by Sam Dodrill
parent 26005c6f48
commit 47130005ae
1 changed files with 60 additions and 51 deletions

109
Config
View File

@ -8,21 +8,10 @@ This software is under GPL.
from os import system from os import system
def promptUser(prompt, default): try:
inp = raw_input("%s [%s]> " % (prompt, default)) raw_input = raw_input
except NameError:
if inp == "": raw_input = input
return default
else:
return inp
def promptYesNo(prompt, default=True):
inp = False if promptUser(prompt, "Y") == "N" else True
return inp
configflags = ["./configure"]
system("clear")
art = """ art = """
_______ __ __ __ _______ ______ ______ __ _______ __ __ __ _______ ______ ______ __
@ -35,49 +24,64 @@ Welcome to the Elemental-IRCd Configuration script. This script will help you ch
best compile flags for your installation of Elemental-IRCd. best compile flags for your installation of Elemental-IRCd.
""" """
print(art) class Configure():
print(welcome) def promptUser(self, prompt, default):
inp = raw_input("%s [%s]> " % (prompt, default))
if inp == "":
return default
return inp
print("Please specify where you would like to install Elemental-IRCd.") def promptYesNo(self, prompt, defult=True):
installloc = promptUser("Install location?", "$HOME/ircd") inp = False if self.promptUser(prompt, "Y") == "N" else True
return inp
print("") def go(self):
configflags = ["./configure"]
print(art)
print(welcome)
print("Please specify the maximum nickname length. This must be the same across") print("Please specify where you would like to install Elemental-IRCd.")
print("all servers in your network or you risk desyncs. The maximum is 50.") installloc = self.promptUser("Install location?", "$HOME/ircd")
nicklen = 100 print("")
while nicklen > 51: print("Please specify the maximum nickname length. This must be the same across")
if nicklen != 100: print("all servers in your network or you risk desyncs. The maximum is 50.")
print "Error: you must choose a value under 50."
nicklen = int(promptUser("Maximum nickname length?", "31")) nicklen = 890234
nicklen_valid = False
while not nicklen_valid:
try:
nicklen = int(self.promptUser("Maximum nickname length?", "31"))
if nicklen > 51 and nicklen != 890234:
nicklen_valid = False
else:
nicklen_valid = True
except ValueError:
nicklen_valid = False
print("") if not nicklen_valid:
print("Error: you must choose an integer value under 50.")
print("Would you like to disable small network support? This increases the size") print("")
print("of a few buffers in the code and can increase performance on large networks.")
smallnet = promptYesNo("Small network? (Y/N)") print("Would you like to disable small network support? This increases the size")
print("of a few buffers in the code and can increase performance on large networks.")
smallnet = self.promptYesNo("Small network? (Y/N)")
configflags.append("--prefix=%s" % installloc) configflags.append("--prefix=%s" % installloc)
configflags.append("--with-nicklen=%s" % nicklen) configflags.append("--with-nicklen=%s" % nicklen)
if not smallnet:
configflags.append("--enable-small-net")
else:
configflags.append("--disable-small-net")
if not smallnet: print("\nThat should be it for now. Running %s" % " ".join(configflags))
configflags.append("--enable-small-net") raw_input("Press enter to continue... ")
else: system(" ".join(configflags))
configflags.append("--disable-small-net") print(art)
print("\nThat should be it for now. Running %s" % " ".join(configflags)) print("""
Next, run `make` and `make install`. Then copy %s/etc/example.conf to
raw_input("Press enter to continue... ")
system(" ".join(configflags))
print(art)
print("""
Next, run make and make install. Then copy %s/etc/example.conf to
%s/etc/ircd.conf and read through the example configuration completely to make %s/etc/ircd.conf and read through the example configuration completely to make
sure your install is tailored to your needs. After that, run %s/bin/ircd sure your install is tailored to your needs. After that, run %s/bin/ircd
and start to connect clients and servers as you need. and start to connect clients and servers as you need.
@ -85,8 +89,13 @@ and start to connect clients and servers as you need.
If you have any problems, please check the documentation in the doc/ folder If you have any problems, please check the documentation in the doc/ folder
of the source repository. If problems persist please stop by #elemental-ircd of the source repository. If problems persist please stop by #elemental-ircd
on irc.yolo-swag.com and ask. Running Elemental-IRCd in insane conditions may on irc.yolo-swag.com and ask. Running Elemental-IRCd in insane conditions may
make support either very difficult or at most impossible.""" %\ make support either very difficult or at most impossible.""" % (installloc, installloc, installloc))
(installloc, installloc, installloc))
system("clear")
c = Configure()
try:
c.go()
except KeyboardInterrupt:
print("\nInterrupted, exiting!")
# vim: set ts=4 sw=4 tw=0 et # vim: set ts=4 sw=4 tw=0 et