Hice este programa para eliminar todos los archivos vinculados a postgresql debido a un problema con la instalación, pero evitando que borre los archivos python y los archivos dentro de la carpeta personal del sistema.
La pregunta es ¿Que se le puede agregar? para hacerlo más efectivo.
Código Python:
Ver original#/usr/bin/env python
"""
Desinstalador de postgresql
"""
from os import remove, system
from time import sleep
from os.path import isdir, isfile
import subprocess
def Deleteall(second_list_postgres_clean, firts_list_psql_clean):
obviados=0
eliminados=0
noexiste=0
for lista in (second_list_postgres_clean, firts_list_psql_clean):
for element in lista:
element=str(element)
if isdir(element) or isfile(element):
print "Eliminando elemento " + element
if element[0:12]=='/home/victor' or element[0:19]=='/usr/lib/pymodules/':
print "Elemento obviado " + element
obviados=obviados+1
else:
sleep(1)
#remove(element)
print "Eliminado " + element
eliminados=eliminados+1
else:
print "El elemento no existe " + element
noexiste=noexiste+1
if isdir('/home/victor/.psql_history'):
print "Eliminacion forzada /home/victor/.psql_history"
remove('/home/victor/.psql_history')
print "Eliminado"
print "Todos los elementos fueron borrados"
print "Actualizando catalogo"
system('updatedb')
print "Elementos inexistentes " +str(noexiste)
print "Elementos obviados " +str(obviados)
print "Elementos Eliminados "+str(eliminados)
print "Actualizacion terminada, ejecucion terminada"
elements_psql_tuple=subprocess.Popen("/usr/bin/env locate "+ 'psql', shell=True, \
stdout=subprocess.PIPE).communicate()
string_to_clean=str(elements_psql_tuple)
firts_list_psql_clean=string_to_clean.replace("[","").replace("'","").replace("]","").replace("(","").replace(")","").split('\\n')
elements_postres_tuple=subprocess.Popen("/usr/bin/env locate "+ 'postgres', shell=True, \
stdout=subprocess.PIPE).communicate()
string_to_clean=str(elements_postres_tuple)
second_list_postgres_clean=string_to_clean.replace("[","").replace("'","").replace("]","").replace("(","").replace(")","").split('\\n')
elements=second_list_postgres_clean.extend(firts_list_psql_clean)
Deleteall(second_list_postgres_clean, firts_list_psql_clean)
Ahorita le estoy agregando manejo de archivos para crear un log
con los archivos borrados, los obviados, y los que estaban inexistentes. Lo agregare también al terminar.