From 40249913ca991e5ebc79640d325cbed96a6f6c67 Mon Sep 17 00:00:00 2001 From: Sam Dodrill Date: Fri, 24 Jan 2014 19:14:23 -0800 Subject: [PATCH] Config: Add prototype auto-configuration script --- Config | 106 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 106 insertions(+) create mode 100755 Config diff --git a/Config b/Config new file mode 100755 index 0000000..91022f0 --- /dev/null +++ b/Config @@ -0,0 +1,106 @@ +#!/usr/bin/env python + +""" +Copyright 2014 Sam Dodrill + +This software is under GPL. +""" + +from os import system + +def promptUser(prompt, default): + inp = raw_input("%s [%s]> " % (prompt, default)) + + if inp == "": + 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 = """ + _______ __ __ __ _______ ______ ______ __ +| ___| |.-----.--------.-----.-----.| |_.---.-.| |_____|_ _| __ \ |.--| | +| ___| || -__| | -__| || _| _ || |______|| |_| < ---|| _ | +|_______|__||_____|__|__|__|_____|__|__||____|___._||__| |_______|___|__|______||_____|""" + +welcome =""" +Welcome to the Elemental-IRCd Configuration script. This script will help you choose the +best compile flags for your installation of Elemental-IRCd. +""" + +print(art) +print(welcome) + +print("Please specify where you would like to install Elemental-IRCd.") +installloc = promptUser("Install location?", "$HOME/ircd") + +print("") + +print("Please specify the maximum nickname length. This must be the same across") +print("all servers in your network or you risk desyncs. The maximum is 50.") + +nicklen = 100 +while nicklen > 51: + if nicklen != 100: + print "Error: you must choose a value under 50." + + nicklen = int(promptUser("Maximum nickname length?", "31")) + +print("") + +print("Would you like to use SSL (Secure Socket Layer) encryption for client and") +print("server links? (Highly reccomended)") + +usessl = promptYesNo("SSL? (Y/N)") + +print("") + +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 = promptYesNo("Small network? (Y/N)") + +configflags.append("--prefix=%s" % installloc) +configflags.append("--with-nicklen=%s" % nicklen) + +if usessl: + configflags.append("--enable-openssl") +else: + configflags.append("--disable-openssl") + +if not smallnet: + configflags.append("--enable-small-net") +else: + configflags.append("--disable-small-net") + +print("\nThat should be it for now. Running %s" % " ".join(configflags)) + +raw_input("Press enter to continue... ") + +system(" ".join(configflags)) + +system("clear") + +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 +sure your install is tailored to your needs. After that, run %s/bin/ircd +and start to connect clients and servers as you need. + +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 +on irc.yolo-swag.com and ask. Running Elemental-IRCd in insane conditions may +make support either very difficult or at most impossible.""" %\ + (installloc, installloc, installloc)) + +# vim: set ts=4 sw=4 tw=0 et +