X-Git-Url: http://git.cascardo.info/?p=cascardo%2Fipsilon.git;a=blobdiff_plain;f=ipsilon%2Finstall%2Fserver.py;h=0018e1069ac2b260095a9b2bdf55d02d454716d4;hp=f5d06b6067b7c837aeffde1919b580617999d2b7;hb=1d7df9dbac43b63424ee07ebfb86c6a106dcb43c;hpb=7efffe85403fbaa1335186b311ad7ac8ea19ad1e diff --git a/ipsilon/install/server.py b/ipsilon/install/server.py index f5d06b6..0018e10 100755 --- a/ipsilon/install/server.py +++ b/ipsilon/install/server.py @@ -17,18 +17,60 @@ # You should have received a copy of the GNU General Public License # along with this program. If not, see . +from ipsilon.login.common import LoginMgrsInstall +from ipsilon.providers.common import ProvidersInstall import argparse +import sys -def parse_args(): +def find_plugins(): + plugins = { + 'Login Managers': LoginMgrsInstall().plugins, + 'Auth Providers': ProvidersInstall().plugins + } + return plugins + + +def parse_args(plugins): parser = argparse.ArgumentParser(description='Ipsilon Install Options') parser.add_argument('--version', action='version', version='%(prog)s 0.1') + parser.add_argument('-o', '--login-managers-order', dest='lm_order', + help='Comma separated list of login managers') + parser.add_argument('--ipa', choices=['yes', 'no'], default='yes', + help='Detect and use an IPA server for authentication') + + lms = [] + + for plugin_group in plugins: + group = parser.add_argument_group(plugin_group) + for plugin_name in plugins[plugin_group]: + plugin = plugins[plugin_group][plugin_name] + if plugin.ptype == 'login': + lms.append(plugin.name) + plugin.install_args(group) args = vars(parser.parse_args()) + if args['lm_order'] is None: + args['lm_order'] = [] + for name in lms: + if args[name] == 'yes': + args['lm_order'].append(name) + else: + args['lm_order'] = args['lm_order'].split(',') + + if len(args['lm_order']) == 0: + #force the basic pam provider if nothing else is selected + if 'pam' not in args: + parser.print_help() + sys.exit(-1) + args['lm_order'] = ['pam'] + args['pam'] = 'yes' + return args if __name__ == '__main__': - opts = parse_args() + found_plugins = find_plugins() + opts = parse_args(found_plugins) print opts