mirror of
https://github.com/erkin/ponysay.git
synced 2024-11-25 05:47:59 +01:00
building
This commit is contained in:
parent
488a80a2d5
commit
ae2bf97af0
1 changed files with 137 additions and 9 deletions
146
setup.py
146
setup.py
|
@ -212,7 +212,125 @@ class Setup():
|
||||||
def build(self, conf):
|
def build(self, conf):
|
||||||
print('\033[1;34m::\033[39mCompiling...\033[21m')
|
print('\033[1;34m::\033[39mCompiling...\033[21m')
|
||||||
|
|
||||||
pass
|
def compressCommand(ext):
|
||||||
|
if ext == 'gz': return 'gzip -9 -f'
|
||||||
|
if ext == 'xz': return 'xz -9e -f'
|
||||||
|
|
||||||
|
def compress(source, destination, ext):
|
||||||
|
print('%s < %s > %s' % (compressCommand(ext), source, destination))
|
||||||
|
(fileout, filein) = (None, None)
|
||||||
|
try:
|
||||||
|
fileout = open(destination, 'w+')
|
||||||
|
filein = open(source, 'r')
|
||||||
|
Popen(compressCommand(ext).split(' '), stdout=fileout, stdin=filein).communicate()
|
||||||
|
finally:
|
||||||
|
if fileout is not None: fileout.close()
|
||||||
|
if filein is not None: filein .close()
|
||||||
|
|
||||||
|
env = conf['custom-env-python']
|
||||||
|
if env is None:
|
||||||
|
(out, err) = Popen(['env', 'python', '--version'], stdout=PIPE, stderr=PIPE).communicate()
|
||||||
|
out += err
|
||||||
|
out = out.replace('\n', '')
|
||||||
|
env = env.split(' ')[1].split('.')[0]
|
||||||
|
if int(env) < 3: env = 'python3'
|
||||||
|
else env = 'python'
|
||||||
|
mane = False
|
||||||
|
for command in commands:
|
||||||
|
if conf[command] is not None:
|
||||||
|
mane = True
|
||||||
|
break
|
||||||
|
if mane:
|
||||||
|
(fileout, filein) = (None, None)
|
||||||
|
try:
|
||||||
|
fileout = open('ponysay.install', 'w+')
|
||||||
|
filein = open('ponysay', 'r')
|
||||||
|
data = ''.join(filein.readlines())
|
||||||
|
|
||||||
|
data = data.replace('#!/usr/bin/env python', '#!/usr/bin/env ' + env)
|
||||||
|
for sharedir in [item[0] for item in sharedirs]:
|
||||||
|
data = data.replace('/usr/share/ponysay/' + sharedir, conf[sharedir])
|
||||||
|
|
||||||
|
fileout.write(data)
|
||||||
|
finally:
|
||||||
|
if fileout is not None: fileout.close()
|
||||||
|
if filein is not None: filein .close()
|
||||||
|
|
||||||
|
for man in manpages:
|
||||||
|
key = 'man-' + man[0]
|
||||||
|
section = conf['man-section-ponysay']
|
||||||
|
if man is manpages[0]: lang = ''
|
||||||
|
else: lang = '.' + man[0]
|
||||||
|
if conf[key] is not None:
|
||||||
|
src = 'manuals/manpage' + lang + '.0'
|
||||||
|
dest = src + '.install'
|
||||||
|
(fileout, filein) = (None, None)
|
||||||
|
try:
|
||||||
|
fileout = open(dest, 'w+')
|
||||||
|
filein = open(src, 'r')
|
||||||
|
data = ''.join(filein.readlines())
|
||||||
|
|
||||||
|
data = data.replace('\n.TH PONYSAY 0', '\n.TH PONYSAY ' + conf['man-section-ponysay'])
|
||||||
|
for section in [item[0] for item in mansections]:
|
||||||
|
data = data.replace('\n.BR %s (0)' % (section), '\n.BR %s (%s)' % (section, conf['man-section-' + section]))
|
||||||
|
|
||||||
|
fileout.write(data)
|
||||||
|
finally:
|
||||||
|
if fileout is not None: fileout.close()
|
||||||
|
if filein is not None: filein .close()
|
||||||
|
src = dest
|
||||||
|
ext = conf[key + '-compression']
|
||||||
|
if ext is not None:
|
||||||
|
dest = 'manuals/manpage' + lang + '.0.' + ext
|
||||||
|
compress(src, dest, )
|
||||||
|
|
||||||
|
if conf['info'] is not None:
|
||||||
|
print('makeinfo manuals/ponysay.texinfo')
|
||||||
|
os.system('makeinfo manuals/ponysay.texinfo')
|
||||||
|
ext = conf['info-compression']
|
||||||
|
if ext is not None:
|
||||||
|
compress('ponysay.info', 'ponysay.info.' + ext, ext)
|
||||||
|
|
||||||
|
for shell in [item[0] for item in shells]:
|
||||||
|
if conf[shell] is not None:
|
||||||
|
src = 'completion/%s-completion.%s' % (shell, 'sh' if shell == 'bash' else shell)
|
||||||
|
for command in commands:
|
||||||
|
if conf[shell] in not None:
|
||||||
|
dest = src + '.' + shell
|
||||||
|
(fileout, filein) = (None, None)
|
||||||
|
try:
|
||||||
|
fileout = open(dest, 'w+')
|
||||||
|
filein = open(src, 'r')
|
||||||
|
data = ''.join(filein.readlines())
|
||||||
|
|
||||||
|
data = data.replace('/usr/bin/ponysay', conf[command])
|
||||||
|
data = data.replace('/ponysay', '\0')
|
||||||
|
data = data.replace('ponysay', command)
|
||||||
|
for sharedir in [item[0] for item in sharedirs]:
|
||||||
|
data = data.replace('/usr/share/ponysay/' + sharedir, conf[sharedir])
|
||||||
|
data = data.replace('\0', '/ponysay')
|
||||||
|
|
||||||
|
fileout.write(data)
|
||||||
|
finally:
|
||||||
|
if fileout is not None: fileout.close()
|
||||||
|
if filein is not None: filein .close()
|
||||||
|
|
||||||
|
if conf['quotes'] is not None:
|
||||||
|
removeLists([], ['quotes'])
|
||||||
|
os.mkdir('quotes')
|
||||||
|
file = None
|
||||||
|
try:
|
||||||
|
file = open('ponyquotes/ponies', 'r')
|
||||||
|
ponies = [line.replace('\n', '').split('+') for line in file.readlines()]
|
||||||
|
for pony in ponies:
|
||||||
|
print('Generating quote files for ' + pony)
|
||||||
|
for file in os.listdir('ponyquotes'):
|
||||||
|
if file.startswith(pony + '.'):
|
||||||
|
if os.path.isfile('ponyquotes/' + file):
|
||||||
|
shutil.copy(ponyquotes/ + file, 'quotes/' + '+'.join(ponies) + file[file.find('.'):]
|
||||||
|
finally:
|
||||||
|
if file is not None:
|
||||||
|
file.close()
|
||||||
|
|
||||||
|
|
||||||
'''
|
'''
|
||||||
|
@ -269,13 +387,17 @@ class Setup():
|
||||||
os.system(pair[0])
|
os.system(pair[0])
|
||||||
for man in manpages:
|
for man in manpages:
|
||||||
key = 'man-' + man[0]
|
key = 'man-' + man[0]
|
||||||
|
section = conf['man-section-ponysay']
|
||||||
|
if man is manpages[0]: sub = 'man' + section
|
||||||
|
else: sub = man[0] + '/man' + section
|
||||||
|
if man is manpages[0]: lang = ''
|
||||||
|
else: lang = '.' + man[0]
|
||||||
if conf[key] is not None:
|
if conf[key] is not None:
|
||||||
src = 'manpage.0.' + ('install' if conf[key + '-compression'] is None else conf[key + '-compression'])
|
src = 'manuals/manpage' + lang + '.0.' + ('install' if conf[key + '-compression'] is None else conf[key + '-compression'])
|
||||||
dests = []
|
dests = []
|
||||||
section = conf['man-section-ponysay']
|
|
||||||
for command in commands:
|
for command in commands:
|
||||||
if conf[command] is not None:
|
if conf[command] is not None:
|
||||||
dest = '%s/%s.%s%s' % (conf[key], command, section, '' if conf[key + '-compression'] is None else '.' + conf[key + '-compression'])
|
dest = '%s/%s/%s.%s%s' % (conf[key], sub, command, section, '' if conf[key + '-compression'] is None else '.' + conf[key + '-compression'])
|
||||||
dests.append(dest)
|
dests.append(dest)
|
||||||
self.cp(False, src, dests)
|
self.cp(False, src, dests)
|
||||||
for dir in sharefiles:
|
for dir in sharefiles:
|
||||||
|
@ -315,13 +437,15 @@ class Setup():
|
||||||
files.append(file)
|
files.append(file)
|
||||||
if conf['info-install'] is not None:
|
if conf['info-install'] is not None:
|
||||||
infos.append(file)
|
infos.append(file)
|
||||||
for man in [item[0] for item in manpages]:
|
for man in [item[0] for item in manpages]: ## TODO manpage languages
|
||||||
key = 'man-' + man
|
key = 'man-' + man
|
||||||
|
section = conf['man-section-ponysay']
|
||||||
|
if man is manpages[0]: sub = 'man' + section
|
||||||
|
else: sub = man[0] + '/man' + section
|
||||||
if conf[key] is not None:
|
if conf[key] is not None:
|
||||||
section = conf['man-section-ponysay']
|
|
||||||
for command in commands:
|
for command in commands:
|
||||||
if conf[command] is not None:
|
if conf[command] is not None:
|
||||||
files.append('%s/%s.%s%s' % (conf[key], command, section, '' if conf[key + '-compression'] is None else '.' + conf[key + '-compression']))
|
files.append('%s/%s/%s.%s%s' % (conf[key], sub, command, section, '' if conf[key + '-compression'] is None else '.' + conf[key + '-compression']))
|
||||||
for dir in sharefiles:
|
for dir in sharefiles:
|
||||||
if conf[dir[0]] is not None:
|
if conf[dir[0]] is not None:
|
||||||
dirs.append(conf[dir[0]])
|
dirs.append(conf[dir[0]])
|
||||||
|
@ -372,7 +496,7 @@ class Setup():
|
||||||
for man in manpages:
|
for man in manpages:
|
||||||
if man is manpages[0]: man = ''
|
if man is manpages[0]: man = ''
|
||||||
else: man = '.' + man[0]
|
else: man = '.' + man[0]
|
||||||
files.append('manuals/manpage.0' + man + '.' + comp)
|
files.append('manuals/manpage' + man + '.0' + comp)
|
||||||
for shell in [item[0] for item in shells]:
|
for shell in [item[0] for item in shells]:
|
||||||
for command in commands
|
for command in commands
|
||||||
files.append('completion/%s-completion.%s.%s' % (shell, 'sh' if shell == 'bash' else shell, command))
|
files.append('completion/%s-completion.%s.%s' % (shell, 'sh' if shell == 'bash' else shell, command))
|
||||||
|
@ -506,8 +630,12 @@ class Setup():
|
||||||
if opts['--opt'] is not None:
|
if opts['--opt'] is not None:
|
||||||
if opts['--bin-dir'] is None: opts['--bin-dir'] = ['/opt/ponysay/bin']
|
if opts['--bin-dir'] is None: opts['--bin-dir'] = ['/opt/ponysay/bin']
|
||||||
if opts['--lib-dir'] is None: opts['--lib-dir'] = ['/opt/ponysay/lib']
|
if opts['--lib-dir'] is None: opts['--lib-dir'] = ['/opt/ponysay/lib']
|
||||||
if opts['--share-dir'] is None: opts['--share-dir'] = ['/opt/ponysay/share']
|
if opts['--share-dir'] is None: opts['--share-dir'] = ['/usr/share']
|
||||||
if opts['--with-shared-cache'] is None: opts['--with-shared-cache'] = ['/var/opt/ponysay/cache']
|
if opts['--with-shared-cache'] is None: opts['--with-shared-cache'] = ['/var/opt/ponysay/cache']
|
||||||
|
for sharedir in sharedirs:
|
||||||
|
conf[sharedir[0]] = '/opt/ponysay/share/' + sharedir[0]
|
||||||
|
for sharefile in sharefiles:
|
||||||
|
conf[sharefile[0]] = '/opt/ponysay/share/' + sharefile[1]
|
||||||
|
|
||||||
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:
|
||||||
|
|
Loading…
Reference in a new issue