[Outils] Broot, vos fichiers vont revivre dans votre terminal

Publié le 15 janvier 2020

Services Open Source

 Attention, cet article date de plus d'un an. Les informations qu'il contient sont peut-être obsolètes. 

Bonjour à tous,

Aujourd’hui, nous allons parler d’un outil encore activement en développement. Il s’agit de broot, un “nouveau moyen de voir et d’explorer vos dossiers” comme il est décrit sous Github.

Présentation

Broot est un outil open source écrit en Rust. C’est un outil simple en apparence mais déjà très riche en fonctionnalités et beaucoup d’autres sont encore en chemin comme le témoigne ces deux très récentes issues #140 et #156. Je ne vais pas m’étendre vraiment sur le sujet, le README du projet le fait très bien. Pour finir, son code source est disponible ici (miroir ici).

Installation et mises à jour

Installation classique

Je ne vais pas refaire la documentation que je trouve efficace. Je vous renvoie donc ici pour installer le logiciel.

La première fois que vous lancerez la commande broot, il vous configurera un fichier ~/.config/broot/launcher/bash qu’il sourcera dans votre .bashrc. Les fois d’après, vous pourrez le lancer avec la commande br et il vous créera un fichier de configuration:

$ br
New Configuration file written in "/home/pofilo/.config/broot/conf.toml".
You should have a look at it.

Installation personnalisée

Une personne a demandé dimanche dernier comment installer broot sur un Raspberry Pi (target ARM donc). Le binaire est déjà (et en moins de 2 jours) disponible dans la documentation, alors qu’il était tout à fait possible de l’installer en le recompilant.

J’avais également besoin d’un binaire 32 bits pour une machine au travail (CentOS 6 32 bits, ça fait mal), voici la procédure que j’ai suivie (sur une machine plus récente évidemment):

# install rust
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
source $HOME/.cargo/env
# clone broot
git clone https://github.com/Canop/broot
cd broot/
# checkout on last tag
git checkout v0.11.8
# init target for i686
rustup target add  i686-unknown-linux-musl
# create target
cargo build --target i686-unknown-linux-musl
# and the binary is under target/i686-unknown-linux-musl/debug/

Au niveau compatibilité, je ne connais pas vraiment le Rust mais ça a l’air vraiment simple. Les binaires ne sont pas difficiles à générer avec Cargo et ça fonctionne directement.

Mises à jour

Le développement du projet étant relativement actif, les nouvelles versions sortent rapidement les unes après les autres. J’ai choisi parti pris de la simplicité (tout est relatif vous allez voir). Je fais donc confiance au binaire généré et disponible dans les releases sous Github et je mets à jour mon binaire via ce script (upgradeBroot.sh):

#!/bin/bash
# TODO: check returns codes

if [ -z "$1" ]; then
    echo "Usage: $0 <version>"
    echo "ex: $0 0.11.9"
    exit 1
fi

VERSION=$1
WORKING_DIR="/usr/local/bin"
LINK="https://github.com/Canop/broot/releases/download/v${VERSION}/release.zip"

actualDir=$(pwd)

echo "--> Entering ${WORKING_PATH}"
pushd ${WORKING_DIR}
echo "--> Removing broot symbolic link"
rm -fr broot
echo "--> Downloading ${LINK}"
wget ${LINK}
unzip release.zip -d /tmp
chmod +x broot
echo "--> Renaming broot to broot.${VERSION}"
mv /tmp/build/x86_64-linux/broot broot.${VERSION}
echo "--> Linking go version"
ln -s broot.${VERSION} broot
rm release.zip
rm -fr /tmp/build
echo "--> The new broot version is: "
broot -V
popd

C’est du bash, c’est moche (un joli pléonasme au passage), mais ça marche à l’heure actuelle. Je vous laisse l’adapter selon vos besoins. Pour l’appeler, vous lancez simplement le script en donnant le numéro de version en paramètre.

Pour être au courant des dernières releases, je suis abonné au flux RSS. Je pourrai le mettre à jour automatiquement, mais je préfère voir les releases passer avec leurs lots de nouvelles fonctionnalités et bugfixs.

Petis tips

Voici une liste de petits tips, mais rien ne vaut de se pencher sérieusement sur la documentation officielle.

  • Si votre terminal le permet, vous pouvez utiliser la souris.
  • Vous pouvez le lancer avec br, mais vous pouvez aussi donner en paramètre le dossier dans lequel vous voulez le lancer: br ~/folder.
  • Pour utiliser broot pour vous rendre dans un dossier voulu, trouvez-le depuis l’interface de broot puis utilisez Alt-Entrée, ou alors, utilisez la fonction dcd() décrite ici.
  • Si vous tapez quelques caractères, vous allez filtrer les dossiers et fichiers sur ces caractères (touche esc pour nettoyer la recherche).
  • Configuration de l’éditeur dans votre fichier .bashrc (je sais, j’ai un petit bug visuel quand j’affiche du code au milieu de puces ;)):
export EDITOR=vim
export VISUAL=vim
export PAGER=less
  • Si vous voulez binder la touche Entrée avec vim, dans le fichier ~/.config/broot/conf.toml:
[[verbs]]
invocation = "edit"
key = "enter"
execution = "$EDITOR {file}"
  • Les verbes :toggle_sizes (:s), :toggle_hidden (:h) et :toggle_dates (:d) sont très pratiques pour afficher les tailles, les fichiers cachés ainsi que les dates.

  • Une fonction non présente par défaut (et très pratique avec vim), est open_stay quand on utilise la touche Entrée pour éditer un fichier, pour y pallier, il faut rajouter leave_broot = false dans le verbe en question dans le fichier de configuration (le défaut est que la souris est toujours préemptée par broot qui continue à tourner derrière lorsque vous utilisez vim par exemple …).

  • Je vous laisse ici une copie de ma configuration, c’est très sommaire mais bien sympathique :)

Conclusion

Bref, un bel outil, pas encore parfait (notamment vim pas vraiment compatible à l’heure actuelle par exemple), mais encore en développement et tout le monde peut y participer :)

Je vous laisse enfin naviguer dans la documentation officielle (via l’onglet Documentation dans la barre de titres).

Commentaires




Ailleurs sur le Web


Home Screen Advantage - Infrequently Noted

A slide from Apple's presentation in Apple v. Epic, attempting to make the claim Epic could have just made a PWA if they didn't like the App Store terms because circa '20 Safari was so capable. LOL. Je n'aurai pas assez de popcorn pour le DM…

via Shaarli le 28 février 2024

800 employés de la poste britannique condamnés à tort à cause d’un logiciel défectueux - Next

En droit anglais et gallois, les ordinateurs sont considérés comme « fiables », sauf preuve du contraire, souligne The Guardian, ce qui « renverse la charge de la preuve normalement appliquée dans les affaires pénales ». Euh, ok !

via Shaarli le 15 janvier 2024

Mise en place et étude d'un Honey Pot SSH (Cowrie) | | Sécurité Informatique | IT-Connect (it-connect.fr) – wallabag

Article intéressant. C'est clairement dans la même démarche que mon article sur les phishing.

via Shaarli le 09 janvier 2024

Généré avec openring


Recettes de gourmands


Meringues

Pratique pour utiliser des blancs d'œufs, car les ingrédients sont au tant pour tant.

via cooking.pofilo.fr le 21 mars 2024

Risotto classique

Vraiment très simple mais le résultat est succulent.

via cooking.pofilo.fr le 28 février 2024

Pain italien

via cooking.pofilo.fr le 17 février 2024

Généré avec openring