mirror of
https://github.com/erkin/ponysay.git
synced 2024-11-25 05:47:59 +01:00
uninstallation
This commit is contained in:
parent
70a8423aae
commit
9c0b59a8c6
1 changed files with 82 additions and 10 deletions
92
setup.py
92
setup.py
|
@ -2,6 +2,7 @@
|
||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
|
|
||||||
import os
|
import os
|
||||||
|
import shutil
|
||||||
import sys
|
import sys
|
||||||
from subprocess import Popen, PIPE
|
from subprocess import Popen, PIPE
|
||||||
|
|
||||||
|
@ -11,20 +12,27 @@ PONYSAY_VERSION = '2.5'
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
manpages = [('en', 'English'), # must be first
|
||||||
|
('es', 'Spanish')]
|
||||||
|
|
||||||
#'en' must be first for manpages
|
sharedirs = [('ponies', 'xterm ponies', 'PONYDIR'), # must be first
|
||||||
#'ponies' must be first for sharedirs
|
('ttyponies', 'tty ponies', 'TTYPONYDIR'),
|
||||||
|
('extraponies', 'extra xterm ponies', 'XPONYDIR'),
|
||||||
|
('extrattyponies', 'extra tty ponies', 'XTTYPONYDIR'),
|
||||||
|
('quotes', 'pony quotes', 'QUOTEDIR'),
|
||||||
|
('balloons', 'balloon styles', 'BALLOONDIR')]
|
||||||
|
|
||||||
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')]
|
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')]
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -145,7 +153,7 @@ class Setup():
|
||||||
YELLOW = '\033[33m%s\033[39m'
|
YELLOW = '\033[33m%s\033[39m'
|
||||||
|
|
||||||
for command in commands:
|
for command in commands:
|
||||||
if conf[command]: print(GREEN % ('Installing command ' + command + ' as ', conf[command]))
|
if conf[command] is not None: print(GREEN % ('Installing command ' + command + ' as ', conf[command]))
|
||||||
else: print(RED % ('Skipping installion of 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']))
|
if conf['shared-cache'] is not None: print(GREEN % ('Installing shared cache at ', conf['shared-cache']))
|
||||||
else: print(RED % ('Skipping installation of shared cache'))
|
else: print(RED % ('Skipping installation of shared cache'))
|
||||||
|
@ -206,7 +214,48 @@ class Setup():
|
||||||
def uninstall(self, conf):
|
def uninstall(self, conf):
|
||||||
print('\033[1;34m::\033[39mUninstalling...\033[21m')
|
print('\033[1;34m::\033[39mUninstalling...\033[21m')
|
||||||
|
|
||||||
pass
|
(files, dirs, info) = ([], [], [])
|
||||||
|
|
||||||
|
for command in commands:
|
||||||
|
if conf[command] is not None:
|
||||||
|
files.append(conf[command])
|
||||||
|
if conf['shared-cache'] is not None:
|
||||||
|
dirs.append(conf['shared-cache'])
|
||||||
|
for shell in [item[0] for item in shells]:
|
||||||
|
if conf[shell] is not None:
|
||||||
|
for command in commands:
|
||||||
|
if conf[command] is not None:
|
||||||
|
files.append(conf[shell].replace('ponysay', command))
|
||||||
|
if conf['pdf'] is not None:
|
||||||
|
files.append(conf['pdf'] + '/ponysay.pdf' + ('' if conf['pdf-compression'] is None else '.' + conf['pdf-compression']))
|
||||||
|
if conf['info'] is not None:
|
||||||
|
for command in commands:
|
||||||
|
if conf[command] is not None:
|
||||||
|
file = conf['info'] + '/' + command + '.info' + ('' if conf['info-compression'] is None else '.' + conf['info-compression'])
|
||||||
|
files.append(file)
|
||||||
|
if conf['info-install'] is not None:
|
||||||
|
infos.append(file)
|
||||||
|
for man in [item[0] for item in manpages]:
|
||||||
|
key = 'man-' + man
|
||||||
|
if conf[key] is not None:
|
||||||
|
section = conf['man-section-ponysay']
|
||||||
|
for command in commands:
|
||||||
|
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']))
|
||||||
|
for dir in sharefiles:
|
||||||
|
if conf[dir[0]] is not None:
|
||||||
|
dirs.append(conf[dir[0]])
|
||||||
|
for file in sharefiles:
|
||||||
|
if conf[file[0]] is not None:
|
||||||
|
files.append(conf[file[0]])
|
||||||
|
|
||||||
|
for info in infos:
|
||||||
|
cmdarr = ['install-info', '--delete', '--dir-file=' + conf['info'] + '/dir', info]
|
||||||
|
cmd = ' '.join(['\'%s\'' % (elem.replace('\'', '\'\\\'\'')) for elem in cmdarr])
|
||||||
|
print('Unstalling info manual ' + info + ' with install-info')
|
||||||
|
os.system(cmd)
|
||||||
|
|
||||||
|
self.removeLists(files, dirs)
|
||||||
|
|
||||||
|
|
||||||
'''
|
'''
|
||||||
|
@ -265,7 +314,30 @@ class Setup():
|
||||||
Removes listed files and directories
|
Removes listed files and directories
|
||||||
'''
|
'''
|
||||||
def removeLists(self, files, dirs):
|
def removeLists(self, files, dirs):
|
||||||
pass ## TODO not implemented
|
for file in files:
|
||||||
|
if os.path.isfile(file):
|
||||||
|
print('Unlinking file %s' % (file))
|
||||||
|
os.unlink(file)
|
||||||
|
dir = file
|
||||||
|
while True:
|
||||||
|
dir = dir[:dir.rfind(/) + 1]
|
||||||
|
if ('/ponysay/' in dir) and (len(os.listdir(dir)) == 0):
|
||||||
|
print('Removing newly empty directory %s' % (file))
|
||||||
|
os.rmdir(dir)
|
||||||
|
else:
|
||||||
|
break;
|
||||||
|
for dir in dirs:
|
||||||
|
if os.path.isdir(dir):
|
||||||
|
print('Cascadingly removing directory %s' % (dir))
|
||||||
|
if os.path.islink(dir): os.unlink(dir)
|
||||||
|
else: shutil.rmtree(dir)
|
||||||
|
while True:
|
||||||
|
dir = dir[:dir.rfind(/) + 1]
|
||||||
|
if ('/ponysay/' in dir) and (len(os.listdir(dir)) == 0):
|
||||||
|
print('Removing newly empty directory %s' % (file))
|
||||||
|
os.rmdir(dir)
|
||||||
|
else:
|
||||||
|
break;
|
||||||
|
|
||||||
|
|
||||||
'''
|
'''
|
||||||
|
|
Loading…
Reference in a new issue