fdu

un du un peu interactif grâce à fzy - retour accueil

git clone git://bebou.netlib.re/fdu
Log | Files | Refs | README |

commit 93dfd2c7829ffd49a9d756dc7038fa230b9e1b19
parent 8df093c1bb2cbaa3305479ffe81035b6d220f611
Auteurice: Arthur Pons <arthur.pons@unistra.fr>
Date:   Sun, 27 Oct 2024 19:51:19 +0100

Ajout d'un makefile

Le saviez vous ? gmake a des règles implicites pour construire des
scripts shell comme pour les programmes en C.

Si un fichier `machin.sh` existe et la cible `machin` doit être créé
gmake créera automatiquement le script `machin` en le rendant
exécutable.

Diffstat:
Afdu.sh | 42++++++++++++++++++++++++++++++++++++++++++
Amakefile | 9+++++++++
2 files changed, 51 insertions(+), 0 deletions(-)

diff --git a/fdu.sh b/fdu.sh @@ -0,0 +1,42 @@ +#! /bin/sh + +VERSION="0.2" + +help() <<\% cat +Un du un peu interactif pour un semblant de qdirstat (ou ncdu etc) + +Usage : fdu [chemin] + +Le chemin par défaut est le repertoire courant + +Naviguer avec les flèches +Entrée pour selectionner un dossier ou un fichier +Pour le moment rien n'est fait quand on sélection un fichier +% + +tmpd=$(mktemp -d) +trap "rm -rf $tmpd;exit 0" INT QUIT EXIT + +case "${1}" +in ( -h | --help ) help ; exit +;; ( -v | --version ) echo "clidirstats $VERSION" ; exit +;; (*) + cur=$(cd "${1:-.}" && pwd) + while [ "$cur" != "quit" -a -d "$cur" ];do + tmpf=$(printf "%s" "$cur" | tr '/' '-') + if [ -f "$tmpd/$tmpf" ]; then + list=$(cat "$tmpd/$tmpf") + else + list=$(du -a -d 1 -h "$cur" | sort -hr | sed -E "s,$cur$,total,") + printf "%s" "$list" > $tmpd/$tmpf + fi + cur=$(printf "quit\nprev %s\n%s" "${cur%/*}" "$list" | fzy -l 20 | cut -f2) + done + + if [ ! -e "$cur" ];then + printf "%s" "Selected item not a file, exiting"; exit 1 + else + printf "%s is a file, what do you want to do ?\n" "$cur" + fi +esac + diff --git a/makefile b/makefile @@ -0,0 +1,9 @@ +DEST=/usr/local/bin/ + +all: fdu + +install: + cp fdu ${DEST} + +uninstall: + rm ${DEST}/fdu