mirror of
https://github.com/erkin/ponysay
synced 2024-11-15 08:07:10 +00:00
fixes and conf veiwing
This commit is contained in:
parent
1f409609b5
commit
726b63e97d
1 changed files with 78 additions and 34 deletions
110
setup.py
110
setup.py
|
@ -15,16 +15,16 @@ PONYSAY_VERSION = '2.5'
|
|||
#'en' must be first for manpages
|
||||
#'ponies' must be first for sharedirs
|
||||
|
||||
manpages = (('en', 'English'), ('es', 'Spanish'))
|
||||
sharedirs = (('ponies', 'xterm ponies', 'PONYDIR'), ('ttyponies', 'tty ponies', 'TTYPONYDIR'),
|
||||
manpages = [('en', 'English'), ('es', 'Spanish')]
|
||||
sharedirs = [('ponies', 'xterm ponies', 'PONYDIR'), ('ttyponies', 'tty ponies', 'TTYPONYDIR'),
|
||||
('extraponies', 'extra xterm ponies', 'XPONYDIR'), ('extrattyponies', 'extra tty ponies', 'XTTYPONYDIR'),
|
||||
('quotes', 'pony quotes', 'QUOTEDIR'), ('balloons', 'balloon styles', 'BALLOONDIR'))
|
||||
sharefiles = (('ucs', 'ucsmap'))
|
||||
commands = ('ponysay', 'ponythink')
|
||||
shells = (('bash', '/usr/share/bash-completion/completions/ponysay', 'GNU Bash'),
|
||||
('quotes', 'pony quotes', 'QUOTEDIR'), ('balloons', 'balloon styles', 'BALLOONDIR')]
|
||||
sharefiles = [('ucs', 'ucsmap')]
|
||||
commands = ['ponysay', 'ponythink']
|
||||
shells = [('bash', '/usr/share/bash-completion/completions/ponysay', 'GNU Bash'),
|
||||
('fish', '/usr/share/fish/completions/ponysay.fish', 'Friendly interactive shell'),
|
||||
('zsh', '/usr/share/zsh/site-functions/_ponysay', 'zsh'))
|
||||
mansections = (('ponysay', '6'), ('cowsay', '1'), ('fortune', '6'))
|
||||
('zsh', '/usr/share/zsh/site-functions/_ponysay', 'zsh')]
|
||||
mansections = [('ponysay', '6'), ('cowsay', '1'), ('fortune', '6')]
|
||||
|
||||
|
||||
|
||||
|
@ -63,8 +63,8 @@ class Setup():
|
|||
for shell in shells:
|
||||
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_argumentless(help = 'Only install explicitly included shell completions', alternatives = ['--without-shells'])
|
||||
opts.add_argumented (help = 'Set share/ directory used for shell completions\nDefault = $SHAREDIR', alternatives = [ '--with-shells'], arg='SHAREDIR')
|
||||
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-shell'], arg='SHAREDIR')
|
||||
|
||||
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')
|
||||
|
@ -123,15 +123,62 @@ class Setup():
|
|||
opts.files = ['build']
|
||||
method = opts.files[0]
|
||||
conf = self.configure(opts.opts)
|
||||
if method == 'build': Setup.build (conf)
|
||||
elif method == 'prebuilt': Setup.install (conf)
|
||||
elif method == 'install': Setup.build (conf); Setup.install(conf)
|
||||
elif method == 'uninstall': Setup.uninstall (conf)
|
||||
elif method == 'uninstall-old': Setup.uninstallOld(conf)
|
||||
elif method == 'clean': Setup.clean (conf)
|
||||
elif method == 'clean-old': Setup.cleanOld (conf)
|
||||
else:
|
||||
opts.help()
|
||||
self.viewconf(conf)
|
||||
#if method == 'build': Setup.build (conf)
|
||||
#elif method == 'prebuilt': Setup.install (conf)
|
||||
#elif method == 'install': Setup.build (conf); Setup.install(conf)
|
||||
#elif method == 'uninstall': Setup.uninstall (conf)
|
||||
#elif method == 'uninstall-old': Setup.uninstallOld(conf)
|
||||
#elif method == 'clean': Setup.clean (conf)
|
||||
#elif method == 'clean-old': Setup.cleanOld (conf)
|
||||
#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,11 +224,12 @@ class Setup():
|
|||
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']
|
||||
|
||||
for dir in ('bin', 'lib', 'share'):
|
||||
for dir in ['bin', 'lib', 'share']:
|
||||
if opts['--' + dir + '-dir'] is not None:
|
||||
d = opts['--' + dir + '-dir'][0]
|
||||
for key in conf:
|
||||
if conf.startswith(prefix + '/' + dir):
|
||||
if conf[key] not in [None, True, False]:
|
||||
if conf[key].startswith(prefix + '/' + dir):
|
||||
conf[key] = d + conf[key][5 + len(dir):]
|
||||
if opts['--cache-dir'] is not None:
|
||||
dir = opts['--cache-dir'][0]
|
||||
|
@ -189,18 +237,14 @@ class Setup():
|
|||
if conf.startswith('/var/cache'):
|
||||
conf[key] = d + conf[key][10:]
|
||||
|
||||
for key in conf:
|
||||
defaults[key] = conf[key]
|
||||
|
||||
|
||||
if opts['--nothing'] is not None:
|
||||
opts['--minimal'] = opts['--nothing']
|
||||
|
||||
for key in ('custom-env-python'):
|
||||
for key in ['custom-env-python']:
|
||||
conf[key] = None
|
||||
|
||||
if opts['--everything'] is not None:
|
||||
for key in ('pdf', 'pdf-compression'):
|
||||
for key in ['pdf', 'pdf-compression']:
|
||||
conf[key] = None
|
||||
|
||||
nomanen = opts['--minimal'] is not None
|
||||
|
@ -210,7 +254,7 @@ class Setup():
|
|||
conf[key] = 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
|
||||
|
||||
if opts['--minimal'] is not None:
|
||||
|
@ -225,10 +269,10 @@ class Setup():
|
|||
conf[command] = True
|
||||
|
||||
|
||||
for coll in (('shell', '/usr/share', [item[0] for item in shells]),
|
||||
('man', '/usr/share/man', ['man-' + item[0] for item in manpages]),
|
||||
('man-compression', 'gz', ['man-' + item[0] + '-compression' for item in manpages])
|
||||
):
|
||||
for coll in [['shell', '/usr/share', [item[0] for item in shells]],
|
||||
['man', '/usr/share/man', ['man-' + item[0] for item in manpages]],
|
||||
['man-compression', 'gz', ['man-' + item[0] + '-compression' for item in manpages]]
|
||||
]:
|
||||
if opts['--without-' + coll[0]] is not None:
|
||||
for item in coll[2]:
|
||||
conf[item] = None
|
||||
|
@ -245,7 +289,7 @@ class Setup():
|
|||
if opts['--without-' + key] is not 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)):
|
||||
conf[pair[0]] = defaults[pair[0]]
|
||||
|
||||
|
|
Loading…
Reference in a new issue