[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


Le Pr. Raoult et la Chloroquine : les failles | Le Club de Mediapart

Bonjour, je suis médecin, ça me permet de faire, dire et conclure n'importe quoi. Et c'est cool, Trump est convaincu que c'est le remède miracle, je suis donc un bon médecin.

via Shaarli le 23 mars 2020

Brider les services vidéo sur le Web, une très mauvaise idée ! – Le blog de Seboss666

Je partage son avis et je supprime le début de brouillon pour mon blog ^^

via Shaarli le 22 mars 2020

L’Internet pendant le confinement – Framablog

Article intéressant mais voir mon commentaire laissé: Hello ! Pas entièrement d’accord. Quand on est sur place, on va sur internet certes. Par contre, il y a plein de services hébergés en local (notamment dans une boîte d’info). En télétravail, on a un VPN …

via Shaarli le 21 mars 2020

Généré avec openring