Fórum Ubuntu CZ/SK

Ostatní => Tipy a triky pro Linux => Téma založeno: juwa2 27 Února 2023, 09:23:57

Název: Recoll neindexuje python3 skripty - oprava.
Přispěvatel: juwa2 27 Února 2023, 09:23:57
Pokud mám v nějaké složce mnoho skriptů (libovolných), k jejich prohledávání (např. hledám nějaký výraz který potřebuji upravit a nevím přesně ve kterém skriptu je) používám Recoll.
Nyní ale mám jednu python aplikaci tvořenou cca stovkou python3 skriptů ale Recoll je neindexuje/nevidí. A prohledávat to po jednom ručně se mi tedy opravdu nechce... :-[

Zjistil jsem, že Recoll vidí/indexuje python skripty buď s koncovkou .py nebo shebangem (https://cs.wikipedia.org/wiki/Shebang_(Unix)) 
Kód: [Vybrat]
#!/usr/bin/pythonJejich mimetyp je text/x-python

Zatímco ty moje skripty jsou bez přípony a mají shebang
Kód: [Vybrat]
#!/usr/bin/python3     nebo     #!/usr/bin/python3.8 Jejich mimetyp je text/x-python3   který ale Recoll "nezná" a proto soubory ignoruje.

Po bližším prozkoumání souborů ve sl.  /usr/share/recoll/examples  jsem našel řešení:  Do souboru
Kód: [Vybrat]
~/.recoll/mimeconfpřidat řádky
Kód: [Vybrat]
[index]
text/x-python3 = execm rclpython.py

[icons]
text/x-python3 = text-x-python

Nakonec Recoll restartovat a obnovit rejstřík. Možná bude třeba sestavit rejstřík znovu (Soubor > Sestavit rejstřík znovu).
Od teď už bude Recoll python3 skripty "znát" a indexovat.  :)
Přidávat řádky do hlavní konfigurace v /usr/share/recoll/examples/mimeconf vhodné není - po každé aktualizaci aplikace by se to totiž muselo dělat znovu.
Název: Re:Recoll neindexuje python3 skripty - oprava.
Přispěvatel: ramael 27 Února 2023, 20:50:47
Jsem nevěděl, že něco takového existuje. Já osobně používám jednoduchou funkci přiincludovanou k .bashrc:
Kód: [Vybrat]
najdi() {                                                                                                       
        local adresa=$1                                                                                         
        shift 1                                                                                                 
        find $adresa -type f | xargs grep -Hs  "$@"                                                             
        unset adresa                                                                                             
}
Použití:
najdi složka výraz
Výstup:
relativní adresa souboru:nalezený řádek
Příklady:
Kód: [Vybrat]
radek@Arch-ThinkPad bashe]$ najdi . Erika
./cs_CZ.txt:# 0204=Erika
[radek@Arch-ThinkPad bashe]$ najdi . "na cosi"
./hodnoty:buk="kuk na cosi"
[radek@Arch-ThinkPad bashe]$ najdi . "kuk na"
./hodnoty:ahoj="kuk na strejdu"
./hodnoty:buk="kuk na cosi"
kde tečka znamená aktuální složku.