fixes and conf veiwing

This commit is contained in:
Mattias Andrée 2012-08-25 23:05:14 +02:00
parent 1f409609b5
commit 726b63e97d

112
setup.py
View file

@ -15,16 +15,16 @@ PONYSAY_VERSION = '2.5'
#'en' must be first for manpages #'en' must be first for manpages
#'ponies' must be first for sharedirs #'ponies' must be first for sharedirs
manpages = (('en', 'English'), ('es', 'Spanish')) manpages = [('en', 'English'), ('es', 'Spanish')]
sharedirs = (('ponies', 'xterm ponies', 'PONYDIR'), ('ttyponies', 'tty ponies', 'TTYPONYDIR'), sharedirs = [('ponies', 'xterm ponies', 'PONYDIR'), ('ttyponies', 'tty ponies', 'TTYPONYDIR'),
('extraponies', 'extra xterm ponies', 'XPONYDIR'), ('extrattyponies', 'extra tty ponies', 'XTTYPONYDIR'), ('extraponies', 'extra xterm ponies', 'XPONYDIR'), ('extrattyponies', 'extra tty ponies', 'XTTYPONYDIR'),
('quotes', 'pony quotes', 'QUOTEDIR'), ('balloons', 'balloon styles', 'BALLOONDIR')) ('quotes', 'pony quotes', 'QUOTEDIR'), ('balloons', 'balloon styles', 'BALLOONDIR')]
sharefiles = (('ucs', 'ucsmap')) sharefiles = [('ucs', 'ucsmap')]
commands = ('ponysay', 'ponythink') commands = ['ponysay', 'ponythink']
shells = (('bash', '/usr/share/bash-completion/completions/ponysay', 'GNU Bash'), shells = [('bash', '/usr/share/bash-completion/completions/ponysay', 'GNU Bash'),
('fish', '/usr/share/fish/completions/ponysay.fish', 'Friendly interactive shell'), ('fish', '/usr/share/fish/completions/ponysay.fish', 'Friendly interactive shell'),
('zsh', '/usr/share/zsh/site-functions/_ponysay', 'zsh')) ('zsh', '/usr/share/zsh/site-functions/_ponysay', 'zsh')]
mansections = (('ponysay', '6'), ('cowsay', '1'), ('fortune', '6')) mansections = [('ponysay', '6'), ('cowsay', '1'), ('fortune', '6')]
@ -63,8 +63,8 @@ class Setup():
for shell in shells: for shell in shells:
opts.add_argumentless(help = 'Do not install completion for ' + shell[2], alternatives = ['--without-' + shell[0]]) opts.add_argumentless(help = 'Do not install completion for ' + shell[2], alternatives = ['--without-' + shell[0]])
opts.add_argumented (help = 'Set file name for the completion for ponysay in' + shell[2], alternatives = [ '--with-' + shell[0]], arg='PONYSAY_%s_FILE' % (shell[0].upper())) opts.add_argumented (help = 'Set file name for the completion for ponysay in' + shell[2], alternatives = [ '--with-' + shell[0]], arg='PONYSAY_%s_FILE' % (shell[0].upper()))
opts.add_argumentless(help = 'Only install explicitly included shell completions', alternatives = ['--without-shells']) opts.add_argumentless(help = 'Only install explicitly included shell completions', alternatives = ['--without-shell'])
opts.add_argumented (help = 'Set share/ directory used for shell completions\nDefault = $SHAREDIR', alternatives = [ '--with-shells'], arg='SHAREDIR') opts.add_argumented (help = 'Set share/ directory used for shell completions\nDefault = $SHAREDIR', alternatives = [ '--with-shell'], arg='SHAREDIR')
opts.add_argumentless(help = 'Do not install PDF manual\nDefault', alternatives = ['--without-pdf']) opts.add_argumentless(help = 'Do not install PDF manual\nDefault', alternatives = ['--without-pdf'])
opts.add_argumented (help = 'Set directory for PDF manual\nDefault = $PREFIX/doc', alternatives = [ '--with-pdf'], arg='DOCDIR') opts.add_argumented (help = 'Set directory for PDF manual\nDefault = $PREFIX/doc', alternatives = [ '--with-pdf'], arg='DOCDIR')
@ -123,15 +123,62 @@ class Setup():
opts.files = ['build'] opts.files = ['build']
method = opts.files[0] method = opts.files[0]
conf = self.configure(opts.opts) conf = self.configure(opts.opts)
if method == 'build': Setup.build (conf) self.viewconf(conf)
elif method == 'prebuilt': Setup.install (conf) #if method == 'build': Setup.build (conf)
elif method == 'install': Setup.build (conf); Setup.install(conf) #elif method == 'prebuilt': Setup.install (conf)
elif method == 'uninstall': Setup.uninstall (conf) #elif method == 'install': Setup.build (conf); Setup.install(conf)
elif method == 'uninstall-old': Setup.uninstallOld(conf) #elif method == 'uninstall': Setup.uninstall (conf)
elif method == 'clean': Setup.clean (conf) #elif method == 'uninstall-old': Setup.uninstallOld(conf)
elif method == 'clean-old': Setup.cleanOld (conf) #elif method == 'clean': Setup.clean (conf)
else: #elif method == 'clean-old': Setup.cleanOld (conf)
opts.help() #else:
# opts.help()
'''
Display configurations
'''
def viewconf(self, conf):
RED = '\033[31m%s\033[39m'
GREEN = '%s\033[32m%s\033[39m'
YELLOW = '\033[33m%s\033[39m'
for command in commands:
if conf[command]: print(GREEN % ('', 'Installing command ' + command))
else: print(RED % ('Skipping installion of command ' + command))
if conf['shared-cache'] is not None: print(GREEN % ('Installing shared cache at ', conf['shared-cache']))
else: print(RED % ('Skipping installation of shared cache'))
for shell in [item[0] for item in shells]:
if conf[shell] is not None: print(GREEN % ('Installing auto-completion for ' + shell + ' to', conf[shell]))
else: print(RED % ('Skipping installation of auto-completion for ' + shell))
if conf['pdf'] is not None: print(GREEN % ('Installing PDF manual to ', conf['pdf']))
else: print(RED % ('Skipping installation of PDF manual'))
if conf['pdf-compression'] is not None: print(GREEN % ('Compressing PDF manual with ', conf['pdf-compression']))
else: print(RED % ('Skipping compression of PDF manual'))
if conf['info'] is not None: print(GREEN % ('Installing info manual to ', conf['info']))
else: print(RED % ('Skipping installation of info manual'))
if conf['info-install'] is not None: print(GREEN % ('Installing info manual with install-info with description ', conf['info-install']))
else: print(RED % ('Skipping installation of info manual with install-info'))
if conf['info-compression'] is not None: print(GREEN % ('Compressing info manual with ', conf['info-compression']))
else: print(RED % ('Skipping compression of info manual'))
for man in manpages:
key = 'man-' + man[0]
if conf[key] is not None: print(GREEN % ('Installing ' + man[1] + ' manpage to ', conf[key]))
else: print(RED % ('Skipping installation of ' + man[1] + ' manpage'))
key += '-compression'
if conf[key] is not None: print(GREEN % ('Compressing ' + man[1] + ' manpage with ', conf[key]))
else: print(RED % ('Skipping compression of ' + man[1] + ' manpage'))
for man in mansections: print(GREEN % ('References to manpage for ' + man[1] + ' points to section ', conf['man-section-' + man[0]]))
for dir in sharedirs:
if conf[dir[0]] is not None: print(GREEN % ('Installing ' + dir[1] + ' to ', conf[dir[0]]))
else: print(RED % ('Skipping installation of ' + dir[1]))
for file in sharefiles:
if conf[file[0]] is not None: print(GREEN % ('Installing ' + file[1] + ' as ', conf[file[0]]))
else: print(RED % ('Skipping installation of ' + file[1]))
if conf['custom-env-python'] is not None: print(GREEN % ('Using custom env reference in python script shebang: ', conf['custom-env-python']))
else: print(YELLOW % ('Looking for best env reference in python script shebang'))
print()
''' '''
@ -177,30 +224,27 @@ class Setup():
if opts['--share-dir'] is None: opts['--share-dir'] = ['/opt/ponysay/share'] if opts['--share-dir'] is None: opts['--share-dir'] = ['/opt/ponysay/share']
if conf['shared-cache'] is None: opts['shared-cache'] = ['/var/opt/ponysay/cache'] if conf['shared-cache'] is None: opts['shared-cache'] = ['/var/opt/ponysay/cache']
for dir in ('bin', 'lib', 'share'): for dir in ['bin', 'lib', 'share']:
if opts['--' + dir + '-dir'] is not None: if opts['--' + dir + '-dir'] is not None:
d = opts['--' + dir + '-dir'][0] d = opts['--' + dir + '-dir'][0]
for key in conf: for key in conf:
if conf.startswith(prefix + '/' + dir): if conf[key] not in [None, True, False]:
conf[key] = d + conf[key][5 + len(dir):] if conf[key].startswith(prefix + '/' + dir):
conf[key] = d + conf[key][5 + len(dir):]
if opts['--cache-dir'] is not None: if opts['--cache-dir'] is not None:
dir = opts['--cache-dir'][0] dir = opts['--cache-dir'][0]
for key in conf: for key in conf:
if conf.startswith('/var/cache'): if conf.startswith('/var/cache'):
conf[key] = d + conf[key][10:] conf[key] = d + conf[key][10:]
for key in conf:
defaults[key] = conf[key]
if opts['--nothing'] is not None: if opts['--nothing'] is not None:
opts['--minimal'] = opts['--nothing'] opts['--minimal'] = opts['--nothing']
for key in ('custom-env-python'): for key in ['custom-env-python']:
conf[key] = None conf[key] = None
if opts['--everything'] is not None: if opts['--everything'] is not None:
for key in ('pdf', 'pdf-compression'): for key in ['pdf', 'pdf-compression']:
conf[key] = None conf[key] = None
nomanen = opts['--minimal'] is not None nomanen = opts['--minimal'] is not None
@ -210,7 +254,7 @@ class Setup():
conf[key] = None conf[key] = None
if (opts['--private'] is not None) or (opts['--minimal'] is not None): if (opts['--private'] is not None) or (opts['--minimal'] is not None):
for key in ('info-install', 'shared-cache'): for key in ['info-install', 'shared-cache']:
conf[key] = None conf[key] = None
if opts['--minimal'] is not None: if opts['--minimal'] is not None:
@ -225,10 +269,10 @@ class Setup():
conf[command] = True conf[command] = True
for coll in (('shell', '/usr/share', [item[0] for item in shells]), for coll in [['shell', '/usr/share', [item[0] for item in shells]],
('man', '/usr/share/man', ['man-' + item[0] for item in manpages]), ['man', '/usr/share/man', ['man-' + item[0] for item in manpages]],
('man-compression', 'gz', ['man-' + item[0] + '-compression' for item in manpages]) ['man-compression', 'gz', ['man-' + item[0] + '-compression' for item in manpages]]
): ]:
if opts['--without-' + coll[0]] is not None: if opts['--without-' + coll[0]] is not None:
for item in coll[2]: for item in coll[2]:
conf[item] = None conf[item] = None
@ -245,7 +289,7 @@ class Setup():
if opts['--without-' + key] is not None: if opts['--without-' + key] is not None:
conf[key] = False if defaults[key] in (False, True) else None conf[key] = False if defaults[key] in (False, True) else None
for pair in (('pdf', 'pdf-compression'), ('info', 'info-install'), ('info', 'info-compression'), ('man-es', 'man-es-compression')): for pair in [('pdf', 'pdf-compression'), ('info', 'info-install'), ('info', 'info-compression'), ('man-es', 'man-es-compression')]:
if (conf[pair[0]] in (False, None)) and (conf[pair[1]] not in (False, None)): if (conf[pair[0]] in (False, None)) and (conf[pair[1]] not in (False, None)):
conf[pair[0]] = defaults[pair[0]] conf[pair[0]] = defaults[pair[0]]