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

Tags: Services Open Source


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


Cit0Day Breach Check · GitHub

Une grosse faille avec beaucoup de mails/mots de passes dans la nature avec cette brèche .. Ce script (à adapter selon les cas de chacun) permet de retrouver tous vos sites impactés pour changer immédiatement le mot de passe. Une preuve de plus de l'ind…

via Shaarli le 20 novembre 2020

Git is simply too hard |> Changelog - Liens en vrac de sebsauvage

Je ne comprends toujours pas pourquoi les gens disent que "Git est trop dur à utiliser". Il faut uniquement connaitre les bases et les quelques commandes basiques qui sont (je vois pas comment on pourrait faire vraiment plus simple). git clone git pu…

via Shaarli le 19 novembre 2020

Composition, technologies et fonctionnalités : on vous dit tout du disque dur moderne

Article très intéressant si vous êtes abonnés. J'avais pas suivi qu'il y avait tant d'innovation sur le monde du disque dur. Ca montre également qu'il ne faut pas prendre n'importe quel disque pour faire du NAS (entendre par là un disque…

via Shaarli le 17 novembre 2020

Généré avec openring


Recettes de gourmands


Pizza poulet curry

Une pizza plus estivale, mais qui sait rester gourmande !

via cooking.pofilo.fr le 31 mai 2020

Fajitas

A manger avec les mains, évidemment !

via cooking.pofilo.fr le 24 mai 2020

Pad Thai

Une recette longue mais qui reste relativement simple qui devrait ravir tous les gourmands !

via cooking.pofilo.fr le 17 mai 2020

Généré avec openring