Je vous avais parlé de fzf, `Fuzzy Finder', qui permet de créer des listes interactives...
https://f-hauri.ch/vrac/fzfDbDemo.tzst ## Cette demo DB dépends des paquets suivants: ## catimg, coreutils, fzf, ncurses-bin, sed et sqlite3. $ mkdir /tmp/fzfDemo; cd $_; $ wget -qO - f-hauri.ch/vrac/fzfDbDemo.tzst | tar --zstd -x $ fzfDbDemo/fzfDbDemo.sh # Simple demo DB SQLite $ fzfDbDemo/fzfDbDemoBack.sh # SQLite en background (connexion db unique) # Les touches <Up> <Down> <Return> et <Esc> pour navigation et # <Shift+Up> et <Shift+Down> pour la navigation dans la fenêtre "preview". Voici une application simple et utile pour les paquets Debian (et Ubuntu): (Je chechais à lister les paquets ``elpa-*'') $ mapfile -t arry < <( fzf -m --preview 'read -r nam _ <<<{}; apt-cache show $nam | fold -s -w 80 | batcat --color=always -l YAML -p ' --preview-window 80 < <( apt-cache search elpa ));printf ' - deb pak: %s\n' "${arry[@]%% *}" # Les touches <Up> <Down> <Return> et <Esc> pour navigation, # La touche <tab> pour sélectionner/déselectionner un paquet # <Shift+Up> et <Shift+Down> pour la navigation dans la fenêtre "preview". Cette commande génère une chaîne `arry` qui contient chaque lignes sélectionnée (complête). La syntaxe `"${arry[@]%% *}"` permet d'obtenir une chaîne de chaînes limitées au premier *espace*. Petite fonction: aptFzfSel() { local arry yesno; mapfile -t arry < <( fzf -m --preview ' read -r nam _ <<<{}; apt-cache show $nam | fold -s -w 80 | batcat --color=always -l YAML -p ' --preview-window 80 < <( apt-cache search "$1" )); ((${#arry[@]})) || return 0; echo Install following packages:; printf ' - : %s\n' "${arry[@]}"; printf 'Yes no (Y/n)? ';while [[ -z $yesno ]];do IFS= read -rsn 1 yesno; case ${yesno,} in [yn] ) ;; $'\e') yesno=n ;; '' ) yesno=y;; * ) yesno=;; esac; done; if [[ ${yesno,} == y ]]; then echo Yes; sudo apt install "${arry[@]%% *}"; else echo No; fi; } $ aptFzfSel elpa $ aptFzfSel '^catimg$|^fzf$|^sqlite3$|^ncurses-bin$|^coreutils$|^sed$' A+! -- Félix Hauri - <[email protected]> - http://www.f-hauri.ch _______________________________________________ gull mailing list [email protected] https://forum.linux-gull.ch/mailman/listinfo/gull
