Skip to content

Commit 7f99f1b

Browse files
committed
1.6.0 stable
2 parents 2e5d9db + bf95eba commit 7f99f1b

File tree

3 files changed

+62
-24
lines changed

3 files changed

+62
-24
lines changed

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,3 +3,4 @@ dist/
33
build/
44
kpa_venv
55
kpa.spec
6+
kpa.html

kpa.py

Lines changed: 11 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,8 @@
1919
actualizar_arg,
2020
desinstalar,
2121
consultar,
22-
reinstalar
22+
reinstalar,
23+
limpiar
2324
)
2425
from colorama import (
2526
init,
@@ -48,48 +49,35 @@
4849
"-C": consultar,
4950
"-R": reinstalar,
5051
"-M": multiarg,
52+
"-L": limpiar,
5153
}
5254

5355
if geteuid() == 0:
5456
print(Fore.YELLOW + "ATENCIÓN: No se debe usar KPA con permisos root, los comandos que lo requieran se gestionan internamente.")
5557
print("Vuelva a ejecutar KPA como usuario no-root.")
5658
sys.exit(1)
5759

58-
# Verificación de cada posible caso de rutas, la ruta ~/aur aún se revisa, sin embargo, no se usa como tal en el programa. se usa ahora el éstandar XDG
60+
# Verificación de rutas
5961

60-
# La verificación de ~/aur desaparecerá en la versión 1.6 de KPA
61-
RUTA_ANTIGUA = expanduser("~/aur/act")
62-
RUTA_NUEVA = join(xdg_cache_home, "kpa/act")
62+
RUTA = join(xdg_cache_home, "kpa/act")
6363

64-
if exists(RUTA_ANTIGUA) and not exists(RUTA_NUEVA):
65-
print(Fore.YELLOW + "ADVERTENCIA: la ruta ~/aur/ no será usada más, KPA moverá la carpeta antigua a tu carpeta .cache")
66-
move(expanduser("~/aur"), join(xdg_cache_home, "kpa"))
67-
68-
elif not exists(RUTA_ANTIGUA) and not exists(RUTA_NUEVA):
69-
print("Creando ruta para KPA...\n")
70-
makedirs(RUTA_NUEVA, exist_ok=True)
71-
72-
elif not exists(RUTA_ANTIGUA) and exists(RUTA_NUEVA):
64+
if exists(RUTA):
7365
print(Fore.GREEN + "Ruta de KPA encontrada...\n")
7466

75-
# Ruta nueva para configuración, verificación de ruta antigua desaparecerá en versión 1.6
76-
CONFIG_ANTIGUA = join(xdg_cache_home, "kpa", "kpa.json")
77-
CONFIG_NUEVA = join(xdg_config_home, "kpa", "kpa.json")
78-
79-
if exists(CONFIG_ANTIGUA):
80-
print("El archivo kpa.json será reubicado a .config/kpa/kpa.json")
81-
makedirs(join(xdg_config_home, "kpa"))
82-
move(CONFIG_ANTIGUA, CONFIG_NUEVA)
67+
else:
68+
print("Creando ruta para KPA...\n")
69+
makedirs(RUTA, exist_ok=True)
8370

8471
try:
8572
for arg, funcion in args.items():
8673
if sys.argv[1] == "-h":
87-
print("""Argumentos válidos en KPA Versión 1.5.0:
74+
print("""Argumentos válidos en KPA Versión 1.6.0:
8875
-I paquete para instalar
8976
-A paquete para actualizar un paquete instalado por kpa(o "-A todo" para actualización completa de todo lo instalado con kpa)
9077
-D paquete para desinstalar. -D solo desinstala paquetes instalados por este AUR helper, no desinstala paquetes de otras fuentes como otro AUR helper o Pacman.
9178
-C paquete para consultar sobre un paquete (abre un navegador con la página del paquete en el AUR)
9279
-R paquete para reinstalar un paquete instalado por kpa
80+
-L debug/huerfanos, -L debug elimina todo paquetes que tenga -debug en su nombre, -L huerfanos elimina todo paquete que no sea necesitado por otro y no haya sido instalado por el usuario.
9381
9482
Recuerde crear el archivo kpa.json para configurar kpa correctamente, vea en https://KevinCrrl.github.io/KevinCrrl/documentacion/kpa.html un ejemplo de como debería ser el archivo.""")
9583
break

utlds/funciones.py

Lines changed: 50 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,8 @@
2121
)
2222
from os.path import (
2323
exists,
24-
join
24+
join,
25+
isfile
2526
)
2627
from shutil import (
2728
rmtree,
@@ -197,3 +198,51 @@ def reinstalar(paquete):
197198
pkgbuild(paquete, True) # Aunque no es una actualización, igualmente la carpeta no se debe borrar en una reinstalación
198199
else:
199200
print(Fore.RED + f"ERROR: No se puede reinstalar {paquete} ya que no está instalado.")
201+
202+
203+
def limpiar(tipo):
204+
if tipo == "debug":
205+
try:
206+
instalados = sb.check_output(["pacman", "-Qm"], text=True)
207+
except sb.CalledProcessError:
208+
print(Fore.RED + "ERROR: Ha ocurrido un problema mientras se ejecutaba 'pacman -Qm'")
209+
sys.exit(1)
210+
for paquete in instalados.split("\n"):
211+
if "debug" in paquete:
212+
print(f"\nSe encontró el debug: {paquete}")
213+
eliminar = input("¿Desea eliminarlo del sistema? (S/N): ")
214+
if eliminar.strip().lower() == "s":
215+
try:
216+
sb.run([datos["root"], "pacman", "-R", paquete.split(" ")[0], "--noconfirm"], check=True)
217+
except sb.CalledProcessError:
218+
print(Fore.RED + "ERROR: Hubo un fallo al intentar remover el paquete.\n")
219+
# elif tipo == "paquetes":
220+
# chdir(RUTA)
221+
# for paquete in listdir():
222+
# if paquete != "act":
223+
# print(f"\nUbicación actual: paquete {paquete}")
224+
# chdir(join(RUTA, paquete))
225+
# for paquete_path in listdir():
226+
# protegido = ["PKGBUILD", ".SRCINFO", ".git"]
227+
# if paquete_path not in protegido:
228+
# print(f"Eliminando: {paquete_path}")
229+
# if isfile(paquete_path):
230+
# remove(paquete_path)
231+
# else:
232+
# rmtree(paquete_path)
233+
elif tipo == "huerfanos":
234+
try:
235+
huerfanos = sb.check_output(["pacman", "-Qtdq"], text=True).strip() # strip() para quitar el espacio al final que produce errores al intentar eliminar los paquetes huérfanos
236+
except sb.CalledProcessError as e:
237+
print(Fore.YELLOW + f"Parece que no hay paquetes huérfanos, pues se ha producido una excepción: {e}")
238+
sys.exit(1)
239+
print("Se encontraron los siguientes paquetes huérfanos:\n")
240+
print(huerfanos)
241+
eliminar = input("\n¿Desea eliminar los huérfanos del sistema? (S/N): ")
242+
if eliminar.strip().lower() == "s":
243+
try:
244+
sb.run([datos["root"], "pacman", "-Rns", "--noconfirm"] + huerfanos.split("\n"), check=True)
245+
except sb.CalledProcessError as e:
246+
print(Fore.RED + f"ERROR: Fallo al intentar eliminar los paquetes huérfanos: {e}")
247+
else:
248+
print(Fore.YELLOW + "El tipo de limpieza ingresado no es válido, solo se permite 'debug' o 'huerfanos'")

0 commit comments

Comments
 (0)